Im Detail kann ich Dir jetzt nicht helfen, aber vielleicht kannst Du Dir so eine Art Controller bauen, der Aufträge für das Erstellen und Schließen von Subformularen abarbeitet.
Ich hatte mal so etwas verwendet:
https://www.youtube.com/watch?v=60LNR9eJtgI
Ich kann das mal raussuchen, aber das war ein Teil eines komplexeren Frameworks, so dass Dir das wohl nicht viel helfen wird.
Die besondere Funktionalität des Formulars würde ich auf jeden Fall möglichst auslagern. Also vielleicht lieber TFormController.ShowForm(aParamControl: TControl) aufrufen und das Formular wiederum kann im KillFocus den Controller beauftragen, sich zu schließen: TFormController.CloseMe(Self);
Deine
API-Aufrufe solltest Du evtl. besser vermeiden.