Creo que no va por ahí el problema: el formulario aún no se destruye puesto que desde él se llamó modalmente al otro.
Sin poder decir nada en definitivo, a mi me parece que la variable FConsultaCirc a la que se hacer referencia en el código, no es la que nuestro amigo piensa que es. Hay dos variables llamadas así: la que fedelphi declara en el método Consultacirc1Click del formulario principal, y la que el IDE de Delphi pone en automático al agregar el formulario:
Código Delphi
[-]
type
TFConsultaCirc = class(TForm)
...
end;
var
FConsultaCirc: TFConsultaCirc = class(TForm);
Como no parece que al formulario modal se le pase una referencia al formulario que lo abrió, todo parece indicar que la variable que entra en juego es la que el IDE coloca, que seguramente nunca se ha creado, y de ahí el "Access Violation".
// Saludos