Could you explain the objective of your solution so that we may be able to provide alternative suggestions.
Looking at your code to create clone message of the original. You can use the Message.Clone() to create a copy of the original message. See below the Object API comments about the Clone() method.
Makes an independent copy of this message and returns it as a new draft message. The new message is contained in the same folders as the original.
Sample code to use the clone method…
set oMsg = Client.clientstate.commandmessage set oClonedMsg = oMsg.clone msgbox oClonedMsg.subject