Ciao.
O non ho capito il problema .... o l'errore è talmente evidente che sembra quasi assurdo che non te ne sia accorto

Se guardi bene .... ti accorgi che per il dispose del button fai riferimento all'istanza predefinita del form (quella su cui quindi stai lavorando) ed il button sparisce dal form....successivamente crei una nuova istanza del form al quale fai riferimento per puntare la textbox ..... che non sarà mai la stessa del form che hai aperto.
Dovresti, semplicemente, usare lo stesso coidce che usi per il button anche per la textbox.
Quindi:

codice:
MainForm.bottone1.Dispose();
MainForm.textBox1.Dispose();
Facci sapere....
Ciao