El mensaje saldrá aunque liberes la memoria. Una cosa es liberar la memoria y otra es que el puntero apunte a un lugar de esta.
Para probar que de verdad es ese el problema, deberías llamar al formulario como lo haces y luego volver a llamarlo pero sin crear el objeto (sin la primera línea).
Seguramente dará errores porque el formulario se ha liberado. El problema debe ser otro.
Código Delphi
[-]
Application.CreateForm(TfrmDatosFam, frmDatosfam);
frmDatosFam.ShowModal;
frmDatosFam.ShowModal;
Si este código falla, quiere decir que la memoria se consume en otro lugar de la aplicación.