IDP_MergeGroup doesn't work recursively. I'm open to suggestions, but for now I did a new function that is a mix of IDP_MergeGroup and IDP_SyncGroupValues.
Update, reading how term ***Values is used here I suppose its OK.
just a bit confusing since IDP_MergeGroupValues makes it look like IDP_MergeGroup doesn't operate on values.
All things considered LGTM as is.