Ich gehe tendenziell in genau die andere Richtung: Die Anwendung (und damit auch die
GUI) mit Frames partitionieren und nach Bedarf zusammensetzen. Frames werden dynamisch erzeugt, je nachdem welcher gebraucht wird. Sollte es wirklich mal nötig sein, kann auch mal gerade ein Form erzeugt werden, das den Frame aufnimmt. Am Ende gibt es (außer eventueller Vererbung) im Wesentlichen nur das MainForm in der Anwendung und eben diese dynamischen Wrapper z.B. für floating, stay-on-top oder dialogbasierte Forms.
Ehrlich gesagt habe ich das eigentliche Problem auch noch gar nicht verstanden.