That’s why I asked if you had 2 interfaces. If you mark the route and it’s going out interface1, it will srn-nat with interface1’s range. If your mark the route and it’s leaving interface2, it will src-nat with interface2’s range. On a shared interface you don’t have as much flexibility because now you’ve eliminated the interface decision.
Maybe you marked the connection at the same time you route marked right ? You should be able to use that connection mark in the nat chain as well.