Have you tried calling Frame.dispose() and then changing it? Haven't tried it myself, but it might work.
If not, then what you can do is have the frame an inconsequential part of the class, with only the most minimal hooks to the highest level panel or panels necessarily, and just move those to the new frame. All the children will follow.