As the message says the "variantReplicator" can have only one child.
Your WindowsWorkflow is like this:
<DataReplicator x:Name="variantReplicator" Data="{wf:ActivityBind createVariant, Path=DataOut}">
<TransformXml x:Name="computeVariantFileName" XmlIn="{wf:ActivityBind Object, Path=XmlOut}">
<TransformXml.Pars>
<!-- DataOut[0].Info.SrcDescription contains the name of the variantType -->
<wf:WorkflowParameterBinding ParameterName="variantTypeName" Value="{wf:ActivityBind variantReplicator, Path=DataOut[0].Info.SrcDescription}" />
<wf:WorkflowParameterBinding ParameterName="objectId" Value="/*/@id" />
<wf:WorkflowParameterBinding ParameterName="objectName" Value="/*/@name" />
</TransformXml.Pars>
</TransformXml>
<Save x:Name="saveVariant" Data="{wf:ActivityBind variantReplicator, Path=DataOut}" Mode="Overwrite" To="{}{0}/{1}" Description="Saving variant to target...">
<Save.Pars>
<wf:WorkflowParameterBinding ParameterName="p0" Value="{wf:ActivityBind ImagesPublishWF, Path=ParValue["destDir"]}" />
<wf:WorkflowParameterBinding ParameterName="string(/*)" Value="{wf:ActivityBind computeVariantFileName, Path=XmlOut}" />
</Save.Pars>
</Save>
</DataReplicator>
As you can see there are two nodes inside the DataReplicator: the Transform and the Save.
Try to move the save inside the transform, like this:
<DataReplicator x:Name="variantReplicator" Data="{wf:ActivityBind createVariant, Path=DataOut}">
<TransformXml x:Name="computeVariantFileName" XmlIn="{wf:ActivityBind Object, Path=XmlOut}">
<TransformXml.Pars>
<!-- DataOut[0].Info.SrcDescription contains the name of the variantType -->
<wf:WorkflowParameterBinding ParameterName="variantTypeName" Value="{wf:ActivityBind variantReplicator, Path=DataOut[0].Info.SrcDescription}" />
<wf:WorkflowParameterBinding ParameterName="objectId" Value="/*/@id" />
<wf:WorkflowParameterBinding ParameterName="objectName" Value="/*/@name" />
</TransformXml.Pars>
<Save x:Name="saveVariant" Data="{wf:ActivityBind variantReplicator, Path=DataOut}" Mode="Overwrite" To="{}{0}/{1}" Description="Saving variant to target...">
<Save.Pars>
<wf:WorkflowParameterBinding ParameterName="p0" Value="{wf:ActivityBind ImagesPublishWF, Path=ParValue["destDir"]}" />
<wf:WorkflowParameterBinding ParameterName="string(/*)" Value="{wf:ActivityBind computeVariantFileName, Path=XmlOut}" />
</Save.Pars>
</Save>
</TransformXml>
</DataReplicator>