Solo comento que Interbase/Firebird soporta automáticamente actualizaciones y borrados en cascada, asi que si queres que se eliminen automáticamente los detalles de una tabla, al crear el constraint basta con añadir:
on delete cascade;
y listo. La base de datos se encarga y no tenes que programar vos estos triggers.
Hasta luego.
pd. otra cosa... en el procedure Borrar_Albaran... no se si hay algo mas, pero no le veo sentido a la sentencia Suspend;