I'd really like to see a solution from Xara on this issue -- forms differences and missing items in variants with use of a placeholder; however, to document it, I worked on a different solution inspired by the post in the link in my last comment above.

The solution is this so far:

(1) For each placeholder use <iframe> construct to reference the form code. This apparently had worked for jotforms and others, so why not give it a shot. Note that the placeholder only has body code, not head code. The head code now goes into (2) below.

Code:
<iframe src="http://yourdomain.com/Form1.htm" width="665" height ="565" seamless scrolling="no"></iframe>
The width and height options can be different for each variant and are necessary so the iframe is not to small. Attribute scrolling="no" removes the scroll handles. Attribute "seamless" would be nice if it worked -- removing the whole frame around an iframe, but it doesn't work on all browsers. I read boarder="0" does not work with HTML5, but you might try to add that.

(2) Place the entire code of the form within a htm/html file, in this case named form1.htm. You could easily have form1, form2, and form3.htm files for each variant if you wanted to work on widths of things. This htm file now includes the header javascript from Google and all the formatting you need to make the table. This is an abbreviated example.

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
	<script src='https://www.google.com/recaptcha/api.js'></script>
  </head>
  <body>

...whatever code you needed before this

<form method="post"
action="/cgi-bin/TFmail.cgi">
<input type="hidden" name="_config" value="name of your trc file in TFmail" />

<input name="first_name" size="25"
maxlength="50">
<td><input name="last_name" size="25"
maxlength="50">

... etc for all your form entries.  Formatting as needed as well.

<div class="g-recaptcha" data-theme="light" data-sitekey="your Google Public Key" style="transform:scale(1.00);-webkit-transform:scale(1.00);transform-origin:0 0;-webkit-transform-origin:0 0;"></div><br>
<div style="text-align: left;"><input
value="Send Now!" type="submit">
</div>
</form>
(2) Modify your error codes if needed, to realize they are in a frame. The only modification are links. I no links, then no modification. The missing fields message should be generated through TFmail missing.trt template:

Code:
%% NMS html template file %%
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Missing Fields - Companyname Contact Us</title>
   </head>
  <body>
    <h1>Oops! There were missing fields.</h1>
    <p>
      The following fields were left blank in your submission form.
	  We need them to be able to contact you.  We could use your
	  first and last name, comments, and a means to contact you!
    </p>
    <ul>
{= FOREACH missing_field =}
      <li>{= name =}</li>
{= END =}
    </ul>
    <p>
      Please fill in at least these fields before 
	  successfully submit the form.
    </p>
    <p>
      Please use your back button to return to the form and
      try again.
    </p>
  </body>
</html>
This would also be displayed in the iframe.


A missing reCAPTCHA is handled through the modified TFmail template nocaptcha.trt that mimics missing.trt. This requires some modification of the TFmail.pl/cgi file parameters and the code that checks the reCAPTCHA. It cannot be used with standard TFmail. I can provide the modified TFmail.

Code:
%% NMS html template file %%
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>No Captcha - Companyname Contact Us</title>
   </head>
  <body>
    <h1>Oops! You forgot to enter the reCAPTCHA.</h1>
    <p>
      Before you press the "Send now!" button, you must click
	  on the "I'm not a robot" check box and complete any tasks
	  required there.
    </p>
    <p>
      Please use your back button to return to the form and
      try again.
    </p>
  </body>
</html>
The success message can be a redirect. if so, make sure the target="_parent" is used in the <a> link so it does not render your thank you message within the frame. If a TFmail success message is used, make sure any internal link there also uses target="_parent" as well. Do not echo all the parameters back to the user because the g-recaptcha-response parameter will also be echoed and it is a big ugly bunch of characters.

Here is an example trt file if a redirect is not used:

Code:
%% NMS html template file %%
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Thank You from Companyname</title>

  </head>
  <body>
    <h1>Thank You from Companyname</h1>
    <p>Thank you for submitting a contact request on {= date =}.
	We will get back to you as soon as possible.  
	If you would like, you may also send an email or call.  Please continue to browse our website.</p>
	<p><a href="http://companyname.com" target="_parent">Return to Companyname</a>
  </body>
</html>
This also displays in the iframe, but the link at the bottom redirects out of the iframe back to the parent. I am not sure if i prefer a redirect or the code rendering in the iframe.

Hopefully Xara will come up with a solution to all the variant issues with forms and scripts as well!