You didn’t break anything. Your code is no longer running in one call stack (same name as program)—every procedure has its own stack entry and message queue.
Use the 276-byte PGMQ layout. Ensure you are sending messages to, and telling your message subfile to get its messages from, the designated call stack message queue.
That PGMQ layout is 3 parts: Program, module, procedure.