I found that programatically, for each group that you want to add the user to, you publish the user there (duh) by creating a node assignment and a ezcontentobject tree entry. However, you must be sure to only make one group the main node.
So if group 1 folder node id is 777 and group 2 folder node id is 888
first add a node assignment and a contentobject tree entry with main_node =1 then for the second group do the same but with main_node =0 and the same for every other group that you wish to publish to.
hmmm I might understand you wrong here, but I had a somewhat similar problem I think.
My solution was to have two user groups (User A and User B), then make roles for each (Role A and Role B). Then I assigned User A to Role A, while User B was assigned to Role A and Role B.