Al parecer el problema está en el IBEvents, al tiempo de destruirlo. Conste que uso delphi 7 update 2 + IBX 7.11 con Firebird 2.5, por tanto, para mí es lógico que pete de esta forma. Ya lo dijo el creador de interbase, que Firebird funcione con IBX es mera casualidad.
El componente lo crea y destruye el formulario principal. Hasta hace unas semanas funcionaba sin problemas. Ahora de buenas a primeras BOOOM.
Por cierto, me gusta mucho este código

(puesto que usa Threads y demás, lo veo hasta lógico):
Código Delphi
[-]
destructor TIBEvents.Destroy;
begin
try
if Registered then
UnRegisterEvents;
except
end;
...
end;