I suspect the error you are seeing occurs when the receive port publishes the message to the MessageBox.
When you set the BTS.ReceivePortName filter on the send port, the send port subscribes directly to the receive port and sends the original message without it being processed by the orchestration.
The orchestration will have a subscription filter of:
BTS.ReceivePortId = <bound receive port id>
AND
BTS.Messagetype = <message type of first receive shape>
You will need to use the XmlReceive pipeline, which promotes the BTS.MessageType property.
Remove any filters on the send port.
And bind, enlist and start the orchestration.