Unless I missed something, Danny's solution should still be OK for MQ.
Response-side copybook processing occurs prior to the message going onto the queue. This means that substitutions of data occur at the time the VSI XML representation of the copybook is converted back into a stream of characters that ends up on the queue. DevTest should process the response-side DPHs before handing control to the transport DPHs. In this case, MQ is the transport. Unless you add some specialized logic, the 'magic strings' are replaced just prior to the transport class sending the response.
I am more interested in the meaning of your comment "...VSM to populate properties in a dynamic response". If the data is dynamic (i.e., a {{magic string}} ), the above statements should be OK. If the response copybook definition is dynamic (meaning the logic needs to generate a variable number of copybook elements, fields, definitions, etc. at run time), you may experience issues in the Copybook DPH because it relies on Copybook mappings and Copybook definitions.