Purtroppo non funziona.
Quando provo a chiudere la Form2 questa non si chiude, anche se sotto di essa si vede l'apertura della Form1. Altro problema : la Form1 che viene riaperta e nella quale erano stati inseriti dei dati, viene completamente resettata. Morale la Form2 non si schioda dal video. C'è qualcosa che le impedisce di chiudersi.
Questa modalità la vorrei gestire per evitare di avere a video molte forms aperte contemporaneamente.
Leggendo i post di questa discussione, mi sono tornate in mente notazioni fattemi da amici del Forum sulla sconvenienza di pensare oggigiorno, con le grosse capacità di RAM disponibili, al risparmio di spazio. Riportando tale ragionamento sul caso da te prospettato, noto che gestisci solamente tre Form. Mi sembra che sia un impegno di spazio non impossibile da gestire dentro un PC attuale, per cui io non mi preoccuperei più di tanto e, nel richiamare la Form dipendente, agirei sulla proprietà "visible" della Form chiamante:
Form2.ShowModal
Me.Visible = False
Nella Form2, per rientrare nella Form1, scriverei:
Form1.Visible = True
Me.close
Dovresti così tornare alla Form1 senza perdere niente di quello che avevi al momento della chiamata della Form2.
Quello che vorresti fare tu é ottimale, ma per riottenere la Form1 con quello che avevi prima dell'Hide, dovresti andare a ricostruire i dati precedenti, con evidente impegno di spazio in memoria in termini di codice. Alla fine, se riuscissi a guadagnare qiualcosa, sarebbe, ben poca cosa.
Ciao.