Le finestre (inteso come Form) non sono "formalmente" adatte a essere visualizzate all'interno di altri controlli: devi creare degli UserControl.

Oltre a questo, la gestione di tutto il meccanismo mi pare poco chiara, a partire da quel Me.Dispose() che si trova nel click di un pulsante che probabilmente appartiene alla finestra di cui stai facendo la Dispose(), appunto.