I'm not sure if that's the right direction. It's possible to create a collection from existing set, and then get set back. That could mean that set is a level below.
Something to try is to check if collections created from same set, but with different models, will return same set in GetFontSet().
Related to that, it's worth checking if returned set contains duplicates in a sense of same file refrences, and if it does, what kind of duplicates. It could be that it lists each {file, face_index} tuple once, or does actually include simulations/variations as separate entries. And collection model could affect that.