Los Access Violations no son muchas las posibilidades:
Código Delphi
[-]
procedure Foo;
var
bla: TAlgunaClase;
begin
bla.AlgunMetodo;
bla := TAlgunaClase.Create;
bla.AlgunMetodo; bla.Free;
bla.AlgunMetodo;
bla := nil;
bla.AlgunMetodo; end;
El depurador no te lleva a la linea que produce la excepcion? la forma mas sencilla de rastrearlo es con un depurador. Revisa los destructores. Revisa el codigo que no acceda a cosas que no fueron creadas/hayan sido liberada de memoria. Pon puntos de ruptura y sigue paso a paso. Mira hasta donde llega el programa y donde se rompe