Not that this a particularly satisfactory solution but in the end I took the maps out of the receive port. My colleague had suggested it was best practice to have that layer of abstraction but in fact that was only relevant for 'classic' BizTalk.
The issue in this particular case appears to be that we have two identical schemas but with different namespaces. The reason for this being if the external schema changed then we could map to the internal in the port without changing anything else. Again useful with classic BizTalk as negates changes to orchestration but not really relevant for ESB.