This is odd. If there are no Subgroups for the first value, onChange the Subgroup will update correctly with the proper subgroups for the selected Group. After the Subgroup is populated though, it will no longer update onChange.
For example:
Group1 > No subgroups.
Group2 > Sub1, Sub2.
Group3 > No subgroups.
Group4 > Sub3, Sub4.
On form load, no data in Subgroup.
Scenario 1:
Initial Group 1 = no data
Select Group 4 = Sub3, Sub4
Select Group 2 = still Sub3, Sub4
Scenario 2:
Initial Group 1 = no data
Select Group 3 = no data
Select Group 2 = Sub1, Sub2
Select Group 4 = still Sub1, Sub2
You can repeat in any number of patterns, after Subgroup has its first data set (not null), it does not change on future onchange/select events.