Yo añadiría un par de cosas si me lo permites:
Código Delphi
[-]
if Assigned(frmFormaHija) then
en lugar de:
Código Delphi
[-]
if frmFormaHija = nil then
y en el evento OnClose de la forma Hija:
Código Delphi
[-]
FreeAndNil(frmFormaHija);
en lugar de:
Código Delphi
[-]
Action := caFree;
frmFormaHija := nil;
Un saludo.