Schreib dir ein Klasse, die alle Funktionen des Formulars beinhaltet, also erstellen, Komponenten, benötigte Funktionen, usw.
Im Programm könntest du dann ein dynamisches Array aus diesen Klassen machen und bei Bedarf das Array vergrößern.
Delphi-Quellcode:
MyFormClass= TClass
...
List: array of MyFormclass;
// Neues Form:
Setlength(list, length(list+1)
List[length(list)]:= Myformclass.create;
usw...
Erwarte das Beste und bereite dich auf das Schlimmste vor.