Can I acheive this the same way by creating a object within tiled and then creating an event for that object?
You can use player.moveTo() to set positions:
player.moveTo({ x: 0, y: 0 })
It is also possible to retrieve an object (called a shape) from Tiled, and direct the event/player to this shape. But perhaps you have a more precise idea of how to use it, so don't hesitate to provide more information
is there a different way I should be doing this so the moveRoute doesn't reset and the NPC completes the path even when the player is on a different map?
If there are more players on the map, the map is freed from memory and events lose their trajectory.
It remains to be seen whether there will be an option to deactivate this.