If multi-mapping is used (for examle to split a message into multiple target messages), then using the global container may not work...

So what happens when for example the source message is mapped into multiple taget messages? Then your mapping is executed twice! The first time the mapping is used to generate the multi-mapping transformation from <Messages><Message1>... to <Messages><MessageN> and the second time the message mapping is used to transfer the source to the target messages.

In other words, the global container can be used in multi-mapping. Make sure that you fill the global container with your variables at the start of the second mapping. Hence, don't put any global container storage into the mapping that is connecting the extra message envelope (<Messages><Message1>...) but instead, use the mapping of the root nodes from the original source and target message.