The Access tab usage can only give and revoke that usergroup. It cannot give them any other usergroups. So it can't go from Usergroup 1 to Usergroup 2 then back to Usergroup 1 unless they already had Usergroup 1 or a plan they transitioned to is controlling Usergroup 1 since CBSubs won't touch usergroups it is not configured to control.
For greater control over usergroup assignment based off plan subscription status you need to use CB Auto Actions. The CBSubs Family Plans integration will try to propagate those subscription status changes to users whom the plan was shared with as well. With CB Auto Actions you can use the below usage to change usergroups.
Plan Active
Global
Triggers: onCPayUserStateChange
User: Automatic
Access: Everybody
Conditions
Condition 1
Field: Custom > Value
Custom Value: [var3]
Operator: Equal To
Value: PLAN_ID_HERE
Condition 2
Field: Custom > Value
Custom Value: [var2]
Operator: Equal To
Value: A
Plan Expired
Global
Triggers: onCPayUserStateChange
User: Automatic
Access: Everybody
Conditions
Condition 1
Field: Custom > Value
Custom Value: [var3]
Operator: Equal To
Value: PLAN_ID_HERE
Condition 2
Field: Custom > Value
Custom Value: [var2]
Operator: Not Equal To
Value: A
This works with any action type. So in your case you'd use a Usergroup action type. This should work with shared plans as well.
Also, to confirm, when a membership is shared that user would adopt the family plans setting (ie. they to would be added to the correct user group set up by the family)?
Yes, that should be working fine.