Im a bit worried about
msmqmessage.MessageID = message.Body.ToString();
string.message=body
what is string.message=body actually doing ? I could understand
String aMessageBody = (String)message.Body;
or in your case
msmqmessage.Body = (String)message.Body;
as Im also worried about
msmqmessage.MessageID = message.Body.ToString();
really ? what are you trying to achieve by assigning the message body to the ID field