The gpx file shows the route created in MRA
I am not sure what the first part related to a waypoint is trying to do - presumably add a waypoint as a point of interest to the favourites or POI section. I know MRA doesn't make it as easy to include waypoints as part if a route as Basecamp. However, this particular point is not used in the route itself.
I've tidied up the gpx with gaps between lines.
This has been exported as v1.1 - there are 4 Vias and one shaping point, and the route when loaded into XT has retained the names you gave.
<wpt lon="-0.45612573623657" lat="51.396005992167"><name>M3 POI</name><type>user</type>
<extensions>
<wptx1:WaypointExtension>
<wptx1:Proximity>100</wptx1:Proximity><wptx1:DisplayMode>SymbolAndName</wptx1:DisplayMode>
</wptx1:WaypointExtension>
<gpxx:WaypointExtension><gpxx:Proximity>100</gpxx:Proximity><gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode></gpxx:WaypointExtension></extensions>
</wpt>
<rte><name>M3 Fail3</name>
<rtept lat="51.432156499836" lon="-0.395867228508"><name>1 Oxford Way, Feltham, TW13 6, United Kingdom</name><extensions><trp:ViaPoint/></extensions></rtept>
<rtept lat="51.420205404773" lon="-0.41707813739777"><name>2 Sunbury on Thames, TW16 6, United Kingdom2</name><extensions><trp:ShapingPoint/></extensions></rtept>
<rtept lat="51.409146269527" lon="-0.43979376554489"><name>3 Sunbury on Thames, TW16 7, United Kingdom</name><extensions><trp:ViaPoint/></extensions></rtept>
<rtept lat="51.393878896764" lon="-0.48443108797073"><name>4 Chertsey, KT16 8, United Kingdom</name><extensions><trp:ViaPoint/></extensions></rtept>
<rtept lat="51.400902454283" lon="-0.52674025297165"><name>5 Chertsey, KT16 8, United Kingdom</name><extensions><trp:ViaPoint/></extensions></rtept>
</rte>
Nowt wrong with any of this, but I am wondering if the combination of MRA and XT is the issue. Normally, the transfer / import process to the XT modifies the route slightly. I believe - but do not know, so I am guessing - that this process checks that plotted route points are valid. It seems to take the lat/long coordinates, look up those in a database, finds the nearest named point on the route, and uses that name, and those coordinates. One consequence of this is that your route point names get changed - which annoyingly removes the sequence numbers that you have added.
The process also seems to treat shaping points, via points and waypoints differently.
MRA routes seem to bypass some of this processing. The routes don't have the subclass field, and they retain the route point names. So they avoid what I assume is the checking that route points actually lie in the route. Although they use HERE maps, there is no map version number for the XT to compare, so I can see no way that the XT can compensate for having a different version of the same map.
So I am wondering, just wondering, that maybe the way the route has been created, and the way the XT normally processes a route on transfer and on import and load, is resulting in the issue you describe.
Try this.
Create the same route in Basecamp. But - create the 5 route points as Waypoints, using the flag tool, first. Name them and then build the route. With the numbered names, the waypoints will appear in the lower left widow pane in BC in the correct order. Highlight them all, right click and select the option to create a route using the selected waypoints.
Then double click the route and edit the points to be shaping or via.
The XT will never change the name if a point that has first been created as a Waypoint.
Then see how that behaves.
I know when I saw this behaviour, it was in the early days of testing what I later termed the RUT behaviour. I had noticed that MRA routes kept their route point names - important when wanting to use Skip - so I know that I had been experimenting with MRA at the time so it is possible.
If it does turn out to be the case, this is likely to be an issue with any route created outside Basecamp.