Okay - a few things I should mention - qRules can do this for you in a rules based way, as well as delete nodes and a kajillion other things - you can try a free download here.
However, given the sample form you first posted, you could add code to the button on the form, and use this:
//get the parent node for the repeating group
XPathNavigator parent = MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:A", NamespaceManager);
//clone a node
XPathNavigator child = MainDataSource.CreateNavigator().SelectSingleNode("/my:myFields/my:A/my:Aa", NamespaceManager).Clone();
//append the node
parent.AppendChild(child);
This is C#, for IP 2007 or greater. The stuff in bold you can replace with the correct XPath to your parent (non repeating) group and your child (repeating group). This is not bullet proof by any means - if, for example, you set your form to not include the repeating group by default, this will fail. But hopefully it is simple and understandable and you'll be able to try it.