Erste Regel: Die GPX-Datei so genau wie möglich machen - also wie maxquer schon schrieb, so viele Punkte wie möglich einbauen.
Ggf. die Datei mal in einem GPX-Viewer öffnen, der gar nicht rechnen kann, dann siehst Du ja, wo die Strecke verläuft. Ich nutze z.B. diesen GPX-Editor um GPX-Dateien zu kürzen, zusammenzukleben, Fahrtrichtung zu ändern etc.:
GPX Editor - und wenn da dann irgendwo nur Luftlinie-Verbindungen zu sehen sind, wo gar keine Straßen sind -> dann weißt Du, dass die GPX-Datei zu wenig Trackpoints hatte und dann muss das Navi ja zwingend dazwischen irgendwas berechnen.
Zweite Regel: Die Datei im TomTom nicht bearbeiten. Ich gehe im MyDrive-Webportal hin, klicke auf "Route importieren", wähle die GPX-Datei aus, fertig. Würdest Du jetzt auf "Route bearbeiten" klicken, würde TomTom anfangen, etwas zu rechnen. Würdest Du dann noch mit den Schaltern für "kurvig/bergig/Nervenkitzel" spielen, würde er viel mehr Route berechnen (und damit deutlich von Deiner GPX-Datei abweichen). Also: Nach dem Import lediglich noch das Häkchen setzten bei "diese Strecke auf meinen Geräten synchronisieren", damit sie auf dem Gerät auftaucht, fertig.
Insbesondere im Zusammenhang mit Basecamp liest man oft, dass die User sich "eine Route entlang eines importierten Tracks berechnen" lassen - scheint dort der übliche Weg zu sein. Beim TomTom kann man das auch machen, wäre aber nur sinnvoll, wenn Deine Vorgabe vier Städte sind und Du willst, dass TomTom Dir dazwischen ne schöne Strecke berechnet. In Deinem Anwendungsfall willst Du das aber ja gerade nicht.
So SOLLTE es klappen.