Seems like you have mismatched sender and receiver types. ServiceBus BrokeredMessages should be used like this:
1) If you send with
var message = new BrokeredMessage(object)
you should receive with receivedMessage.GetBody<typeof(object)>()
2) If you send with
var message = new BrokeredMessage(object, XmlObjectSerializer>
->
you should receive with
receivedMessage.GetBody<typeof(object)>(XmlObjectSerializer)
3) If you send with
var message = new BrokeredMessage(Stream)
You should receive with
receivedMessage.GetBody<Stream>
This should be transparent to you. Just put the type that you are sending in the Receiver.
receivedMessage.GetBody<String>()
if it's a string or receivedMessage.GetBody<TypeOfMessageBody>()