Avrai senz'altro attribuito qualche impostazione errata ad uno o entrambi i due form che entra in conflitto con il meccanismo MDI.

Io ho creato un nuovo progetto, ho inserito due form, ho impostato la proprietà IsMdiContainer a True nel principale e aggiunto questo codice da eseguire alla pressione di un pulsante:

codice:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim frm As New ChildForm
        frm.MdiParent = Me
        frm.Show()
    End Sub
Il codice funziona perfettamente: crea un'istanza del form e la visualizza all'interno del contenitore. Premendo ripetutamente il pulsante, essendo presente un'istruzione New, viene creata ogni volta una nuova istanza della classe; ci saranno, quindi, tanti form quante sono le volte che il pulsante viene premuto, e ciascun form si comporterà così come definito nel codice della classe che lo rappresenta e che ne definisce inoltre le caratteristiche (aspetto, posizione, ecc.).

Usando la scrittura simile a VB6, viene creata automaticamente un'istanza del form e si lavora sempre su quella implicitamente:

codice:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ChildForm.MdiParent = Me
        ChildForm.Show()
    End Sub
Ecco perché è importante avere ben presente la differenza nelle due scritture, e conviene utilizzare la prima forma in modo da abituarsi al metodo di lavoro imposto dal .NET Framework, evitando poi di trovarsi in difficoltà non appena si incontra un blocco di codice che tratta le classi "come si deve".

Ciao!