I don’t think msgcreate is what you want here. There are only two places I *EVER* use msgcreate; reply message and in a read UPoC proc.
The problem is you have no metadata. You will invariably crash the engine even if you try to build your own.
Use msgcopy instead. For example
set nmh [msgcopy $mh]
msgset $nmh $newmsg
A good tip:
If the IB message is large, first get a copy of the IB msg then clear the message handle so that with each msgcopy you are not copying a large message that will subsequently get over-written. For example
set msg [msgget $mh]
msgset $mh “”
Then do the msgcopy commands