Can you post your related code in PORECSS_HEADER method from call of GET_DATA to call of IS_CHANGEABLE and SET_DATA.
You could also post your optional call of GET_PREVIOUS_DATA to insure change data only once and even call of GET_PERSISTENT_DATA to insure currently in creation mode if you didn't use me->trtyp...
Hint: In case BAdI actually not triggered, you could also execute it in the CHECK method, executed just before the POST method executed during commit/update.
Regards,
Raymond