Buenas,
El error salta en el principal.pas porque seguramente tu código está devolviendo algo que no corresponde. Para entender mejor, te recomiendo que ejecutes el principal y vayas ingresando los datos que están en el caso de prueba que falla de forma manual, para entender en que subprograma está dando el problema.
Saludos,
Rodrigo