He creado el un procedimiento de prueba para comprobar lo que mencionas.
Funciona correctamente en Firebird 2.5.
Código SQL
[-]create procedure prueba_dateadd (
fecha_ini date,
semanas smallint)
returns (
fecha_fin date)
as
begin
fecha_fin = dateadd(semanas week to fecha_ini);
suspend;
end
Escribe el código entero de tu procedimiento para ver si hay algo raro que podamos ver.