Picture a big square sheet of silicon. Chop that up into 100 tiny squares. Stick 4-16 of those squares onto a pcb. That's ram. Micron, Samsung, Nanya, all of them do it that way.
Then gskill says to Samsung that they need 5000 of 16/ 3200MHz with the gskill Trident-Z rgb heatsink. So Samsung glues on a heatsink, gives the ram an eprom full of info and you got gskill ram. Then corsair says they want the same thing, so Samsung grabs another 5k of the exact same raw ram, puts on a Vengeance heatsink, fills the eprom with corsair bios, and you get corsair ram.
Which is the same as the Trident-Z. Same ram, different name, different heatsink. So Brand really doesn't matter.
Add to that the fact that each sheet of silicon is slightly different. It's a bunch of melted sand, and that will have different impurities, in different levels or concentrations, leading to differences in compatibility. So you could as easily have a Corsair set and a gskill set with flawless compatibility or get 2 identical Corsair kits bought on the same day, from the same shelf of the same store, and be totally incompatible. Of course you will have no idea what the result will be, or how many trips to the store it will take, or if the original kit is so whacked out of compatibility that it's never going to align with any other kit.
Add more to that is the topology of the board. That's how the traces between the slots are laid out. Some boards have no detriment to 4x sticks, some do as the traces between each pair at the top of the slot create interference at higher frequency. So you could run 3200MHz all day long with 2x sticks, but be plagued with instability at anything over 2666MHz with 4x sticks, for instance.
So since your board accepts your ram with 2x sticks as a given stable config, best bet if you want 32Gb is simply use 2x16Gb. That avoids guessing, as the sticks are already factory tested for compliance and compatibility, and your board already accepts such with no issues getting rated speeds.