Me confundí. FindCaption sólo existe para un ListView. Es raro, no encuentro un método para buscar nodos en un árbol
De cualquier forma, yo me iría con la segunda idea:
Código Delphi
[-]
type
TMDIHija = class(TForm)
private
FNodo: TTreeNode;
public
property Nodo: TTreeNode read FNodo;
end;
Cuando creas el formulario, asignas a su propiedad Nodo el TTreeNode que acabas de insertar en el árbol. Entonces, en el evento OnClose del formulario pondrías algo como:
Código Delphi
[-]
Self.Nodo.Delete;
Action := caFree;
// Saludos