¿ Has utilizado un depurador de Firebird ?.
IBExpert lleva un depurador de procedimientos almacenados, con él podrás seguir la ejecución y comprobar si el bucle genera todos los registros que esperas y asigna las variables tal y como debería.
http://ibexpert.net/ibe/index.php?n=Main.DownloadTrial
NOTA: Tendrás que instalar la Trial de x días, puesto que la versión gratuita de IB-Expert no incorpora este depurador.
Saludos.