Por fin pude solucionarlo... al momento de hacer el llamamiento de la función la declare de la siguiente forma:
DECLARE EXTERNAL FUNCTION extraer
CSTRING(
32767), SMALLINT, SMALLINT
RETURNS CSTRING(
32767) FREE_IT
ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf';
El número de "32767" es cambiado para aumentar la longitud de almacenamiento
Quizas, a alquien le pueda servir o a mí mismo algun día
Y a todos gracias por interezarse