Without seeing any code, based entirely on your description it sounds like you're checking IsHidden() on the Parent instead of the hidden child.
Something else that's been pointed out to me, however, is that when the main frame IsHidden(true) it is no longer able to continue any background processes. It's almost like a "freeze," because they resume again OnShow()
Good Luck.