"ALLOC F(BINDEXMP) DA("IN_BIND_DSN") MOD REUSE"
At the point where you do execio, try adding a SAY statement to confirm it is using the same data set that you think it is using.
SAY 'in_bind_dsn' IN_BIND_DSN
In line 78, try changing the '+' to '-'. It does not make sense to me, but that stands out as a difference.
update: there is logic based on the '+' sign in the PACK_LIST_LOGIC routine.