Originariamente inviato da alka
E' probabile che l'effetto riscontrato sia dovuto al fatto che nel codice delle Form che fanno parte dell'applicazione tu faccia uso direttamente delle variabili che contengono il riferimento al Form creato.
Hai centrato in pieno.

Se utilizzi la variabile globale che Delphi inserisce in ciascuna unit che contiene un Form, ogni volta che usi l'istruzione Application.CreateForm, questa provvederà a creare una nuova finestra e a memorizzarne il riferimento nella variabile specificata; se questa variabile faceva precedentemente riferimento ad un'altra finestra, tale valore verrà perduto e tutto quanto si riferirà da quel momento in poi alla nuova istanza creata.

Un ulteriore suggerimento che posso dare, visto anche l'approccio seguito nell'architettura dell'applicazione, è quello di usare una finestra modale, e non una MDI Child, per modificare i dati di un record, anche perché - se hai fatto uso di controlli "data aware" con relativo TDataSource - sarà difficile separare le finestre dei dettagli in modo che si sincronizzino con quella principale (che contiene la griglia di tutti gli elementi) ma modificando ciascuna un record diverso di quella griglia.

Chiaramente, per poter essere più specifico, servirebbe una quantità maggiore di codice da analizzare.

Come primo suggerimento drastico, ti suggerisco di rimuovere le variabili che Delphi inserisce automaticamente nelle unit appartenenti al tipo del Form definito nel file; in questo modo, ti garantirai di non fare riferimento nel codice a istanze specifiche di quelle finestre.
Questo l'ho pensato anche io, ma anche se dichiaro la variabile form nella procedura di apertura della form stessa il problema si ripropone. E' come se dovessi dichiarare le variabili degli enne form (identici) con enne nomi diversi del tipo frm1, frm2...,frmn.

Infine, se si tratta di un'applicazione nuova, onestamente abbandonerei l'approccio MDI e cercherei di orientarmi su un'architettura visuale più moderna e funzionale, visto che MDI è deprecata da tanto tempo e non utilizzata più dalla maggior parte dei programmi più recenti.
Uso gli MDI perché mi permettono di aprire più form contemporaneamente, in questo modo se sto facendo una cosa e ho bisogno di leggere un dato da un'altra parte lo posso fare senza dover chiudere la form in questione.

Cosa mi consiglieresti in questo senso?

Ciao!
Ciao a te e grazie infinite, mi sei stato di molto aiuto.