Formen die mit showModal geöffnet sind werden in der Regel
mit dem Setzen des modalResults geschlossen.
Du schliesst die Form und gibst sie im Finally nochmals frei.
Close und Free bei einem Form sind nicht dasselbe. Lediglich wenn das Form im OnClose-Event als Action caFree setzt, wird das Form bei nächster Gelegenheit freigegeben. Ansonsten wird das Form bei einem Close lediglich unsichtbar gemacht, aber nicht freigegeben. Das try-finally mit dem Free ist also eigentlich korrekt.
Der Fehler liegt offensichtlich außerhalb des für uns sichtbaren Codes.