I’ve been looking through the code and other various things, I even thought I had some weird Canvas issue, until I realized my Mobile Control Rig was preventing Child objects from being disabled via SetActive(). I solved this by stuffing all my mobile controls into a single panel inside my main Canvas, but my question is WHY? I’ve been trying to find the reason but it totally eludes me.

Mobile control rig automatically enables objects.

You will have to create some ignore array inside mobile control rig. Or create a public value to enable/disable all objects (change SetActive(true/false) to SetActive(theValue)).

But I would just create a new canvas as a root game object and put all my UI there.