Inconsistent DCC Speeds


Creator, BMP Trainz
When I run one of my (steam) locomotives on various different routes in DCC (easy) mode, the speed that each "notch" of the throttle provides are different. For example, if I set the dial at 40%, in one route the engine does 8 mph, in another it does 11 mph, and in a third one it does 14 mph (14 being the speed that it always ran at with that amount of power previously on these routes, I just noticed this problem recently). There is no difference in consist (these numbers are all with full tender loads and no consist). What could possibly be causing this? Is it a problem with the engine or the routes?
Photos for reference


Second one looks a little downhill-ish. I am also wondering about elevation differences. Just guessing as I have no idea, really.
Looking at the photos you can see the second one should be going faster since its not uphill, which isnt the case. So its the exact opposite, meaning the grade has nothing to do with it. Its something coding-related.
For a start, DCC mode speed is directly related to the max speed in the engine spec file, and every "notch" is just a percentage of that value (caveat: it's not a linear correlation....).
The next useful parameters are the max-accel and max-decel values, that just change the time to reach the speed at the desired "notch".
Finally, the "notch" speed will ALWAYS be reached.

What will change is the grades or the consist weight: on a positive slope the acceleration will be slower, a heavy train will be slower to accelerate and so on.
BUT....the "notch" speed will always be the same at the end of the acceleration, no changes even in negative slopes.

That said, I grabbed a steam loco and made two tests in two different routes on a new session, and the result was the same: "notch" 30, speed 7 mph on a light consist.
So, unless you're using different Trainz versions (just a guess), or different locos with the same model but different engine specs, there is no way to have 6-7 mph differences in the same "notch" on the same loco in any different route.

Try a different loco, be careful to use the same everywhere, make a new session (that is, a clean start) for every route and make a more controlled test.
Or...tell us what loco and what routes you're using, we may try our own tests.