Ich würde wahrscheinlich auch einfach eine form factory nutzen, wo ich mit dem Klassennamen (als String) die Form-Klasse suche und dann eine Instanz davon erzeuge. Dazu noch ein Interface mit InitForm, SaveForm (vielleicht, wenn gebraucht) und CloseForm Methoden. UNd dann alles generisch nutzen.
Zum Speichern, wie Uwe schon sagte, die vorhandene Form-Liste oder, falls man was spezielles brauch, einfach eine TObjectList. Dazu kann man sich ja noch interface-Methoden einfallen lassen, um zusätzliche Informationen zum Form rauszufinden.
Ich hab mal an einem 1000+ Forms Projekt gearbeitet, wo ich keine globalen Form Variablen nutzte (hab ich als erstes mit rausgeworfen) und hab es über
MDI da gemacht (wo design-technisch so vorgegeben). Und dann eine gute Form Hierarchie dazu gebaut, und hab dann entsprechend abgeleitet vom Level in der Hierachie, welches ich brauchte. MIttlerweile würde ich das vielleicht auch schon wieder eher mit interfaces machen, aber man entwickelt sich ja auch weiter