If you are still interested in this question (and hopefully still have uses for the answer), I will try to answer it in an efficient manner. First of all, The rolling resistance force is an interaction between the ground and the wheel, which is independent of speed ONLY when the ground surface is completely flat and rigid. If the terrain is bumpy/hilly, the rolling resistance does depend on the speed.
On bumpy ground:
It would usually be best to classify the resistance into a few different stages... At low speeds the wheels stay in steady contact with the ground and do not suffer from impact resistances with the tiny hills (like stones) on the ground. At medium speeds the wheels bounce off the top of each bump and land in the valley between the bumps and impact at the base of the next bump. At high speeds the wheels ski over the bumps, only hitting the very tops of them. As a general rule of thumb, on rough ground, the rolling resistance is least at a low speed, is most at a medium speed, and becomes less once the speed is high enough to reach the last stage (which I call rockoplaning... like hydroplaning on rocks).
On smooth/flat and rigid ground: the rolling resistance force is greatest when the wheel is not rolling... but this does not cause the vehicle to roll backward because the rolling resistance is acting in two directions as once... i.e. it is pressing forward and backward with equal force. The rolling resistance force decreases once the wheel begins rolling, but it changes so that it is only acting against the direction of motion. Once the wheel is in steady motion, there is a rolling resistance force acting against the wheel which is not dependent on speed whatsoever. The aerodynamics are greatly dependent on speed, but the rolling resistance is not... which is why the rolling resistance matters a lot at low speeds, but barely at all while driving at high speeds (the aerodynamics are so much more powerful than the rolling resistance when at high speeds). I can vouch for the fact that the rolling resistance is best expressed as Crr*Fn, where Fn is the force pressing the wheel against the ground. The force Fn may not be equal to the weight, if something makes the wheels press on the ground more or less force (like aerodynamic lift/downforce). I have researched, experimented and studied rolling resistance sufficiently to verify that as a general rule, all you need to know is the load force and the coefficient of rolling resistance. The coefficient should be easy to find online, and for a typical car on asphalt, it should be between 0.015 and 0.02.
Some online sources will tell you that rolling resistance is dependent upon speed, but in those cases, they are usually using rolling resistance as a broad term that applies to more than just the wheels rolling... i.e. they mean either the total resistance or the rolling resistance + the resistance of the axles. Because the axles on a train cause more resistance than the wheels, engineers consider the axle resistance to be part of the rolling resistance. Because axles tend to use fluid lubrication, axle resistance does depend upon speed.
While there are exceptions, generally fluids cause friction that depends on speed, while solids do not.
It is incorrect to relate rolling resistance to aerodynamic resistance by some arbitrary factor (like thinking 50% of the resistance is aero, 50% is rolling), because the fact that aerodynamics get stronger and rolling resistance doesn't... So at a very low speed rolling resistance may be >95% of the total resistance, but at a very high speed rolling resistance may be <5% of the total resistance.
Suggestions for your program:
The key is that the rolling resistance should be a force trying to make the vehicle stop... not trying to make it go backwards. And the force should still exist when it is not driving, but the force should just try to keep it from moving, like it is held still by a magnet. Crr should be around 0.02?
Great question. I'm surprised that upon searching, I haven't come across a train-push vs pull question in Physics SE. I'll try to give a detailed answer.
TLDR; Conceptually, the pulling engine is better but both push and pull trains are doable and exist in real life. If you're talking about an idealised thought experiment, I don't think there's a difference.
Now, let's talk details. Your force reasonings are accurate in that, you do no more work pulling a weight up a hill than you do pushing it. The normal/reaction force that is relevant to the friction experienced is perpendicular to the push/pull force and as such, cannot contribute to friction's magnitude. However, it doesn't really matter since train wheels almost never slip. Of course, there is the occasional slip where ice, grease, organic matter, etc. are concerned but steel on steel with heavy weight makes for some impressive tractive force. See this question for more details.
In real life, many train companies use both push and pull methods. In a push-pull train, you have dual locomotives in the front and back, sometimes working together, sometimes taking turns. Companies also do pull trains one way and then push them back, saving cost and having to turn the train around. If we're talking pull-only vs push-only trains, it's a different story.
Theoretically, no, the engine pushing at the rear will not have any mechanical advantage over the engine pulling from the front. In fact, it is the other way around. For many reasons, I think the engine pulling has the advantage, however small.
Easier to see
For one, it is easier and safer to get where you're going when you place your sensors in such a way that the information relevant to your motion reaches you soonest. Almost always, this is the part furthest along the direction of your motion (which is why most animals have their eyes in front). In other words, you get to see what's in front of you before you hit it.
Easier to make
Secondly, a train that has a pulling engine is much easier to design and build. Most train cars are connected by a "tether" of sorts, which is much closer to a string than it is to a stick. It is a lot easier to design and build connections that are strings that pull cars than sticks that push cars. What I mean by stick is something which is rigid and resists deformation. What I mean by string, however, is something which pulls and is pliable. An interesting aside, I've heard my professor once say that that's sort of the definition of a string in physics; something which can only pull and not push.
Anyway, in real life the train cars don't do well when they are pushed with a string (even a semi-rigid connection). You get collapses and distortions in the overall chain of the train because the connections can't withstand the force intended to push the train. The tracks help mitigate this to some degree but it creates unwanted stress.
Easier to steer/safer to drive
It only makes sense to push the train if the connections are rigid but then steering the train becomes mechanically harder because the train becomes less flexible as a whole. The chances of derailing are also higher in a push-train than it is in a pull-train although I am aware some experts say that the difference is small enough to be ignored and isn't significant (especially in reference to Glendale 2005 and Oxnard 2015). I think this is because the direction of force is changing sooner with respect to the direction of track change in a pull-train than it is in a push-train. In other words, the pull force changes with the curve and the other cars follow accordingly but the push force remains straight as the cars in front experience the curve in tracks.
More efficient design
You also get inefficiencies when you push a non-rigid train because all the small things in a train distort whenever and however they can. Forces and these things in general tend to always take the path of least resistance. A path that is non-rigid is by definition less resistant than a rigid one and so whenever a non-rigid path exists and is pushed, it will bend and buckle in a way that it was not designed to do. This creates more friction, wear, tear, heat, noise and in general, more things to account for. Below is just one of the ways I could think of that a push-train going uphill could go awry.
Additionally, a pull-engine has an inherent superiority to a push-engine. Try this; slowly push a cup with your finger across the table. Eventually, you will "lose" the cup. It might slide to the side or be pushed aside by your finger or twist to avoid your finger. Now try pulling the same cup with your finger through its handle. You'll never lose the cup. Not sure how significant this is when there are tracks but I imagine there's certainly a difference.
Idealistically in a thought experiment, I think there is no difference. You'd need some kind of exotic material though, along with perfect rigidity, perfect trains with perfect connections, flawless tracks, etc.
Edit
In response to the updated question, with a rigid coupling, both the pull and push engines have things resisting the torque "lift" of the train (weight of front load in push-engine and the back portion pushing into the ground in pull-engine). Note that whether the locomotive is front-wheel, rear-wheel or all-wheel drive is relevant. That being said, I still maintain that the pull-engine is superior because the point here is essentially that the train is doing a power wheelie. The best way to mitigate wheelies isn't by moving more weight to the front of the vehicle, it's by adding a wheelie bar.
Best Answer
The main force slowing down a fast moving bicycle is air drag.
When you're rolling down a slope, gravity is speeding up your bike while drag is slowing it down. The force of gravity is proportional to your mass (plus that of your bicycle) while the drag force is proportional to your frontal area and approximately proportional to the square of your speed relative to the air.
Yes, there's also some friction in the wheel bearings and some rolling drag between the wheels and the ground. Like gravity, rolling drag is typically also proportional to weight, so if it was the only thing slowing your bike down, you would indeed expect the weight of the rider not to matter.
However, at speeds above about 20 km/h or so air drag will exceed rolling drag, and even at lower speeds (unless you're going very slowly or driving in deep mud or snow, or unless your bike is super rusty and never oiled) the effect of air drag is still noticeable. (That's also why it's so much harder to drive a bicycle against the wind than with the wind behind you.)
Thus there is still a significant component to the total drag force that's not proportional to your mass but to your frontal area.
For two objects of similar shape and composition, such as two humans, mass is approximately proportional to volume, and thus to height cubed, while frontal area is only proportional to height squared. Thus, the ratio of gravitational to drag force (at a given velocity) for a bicyclist rolling down a hill is approximately proportional to their height, or to the cube root of their weight. (This is yet another example of a square–cube law.)
While this relationship is only approximate (since obviously human bodies are not all the same shape and two equally tall people can have different body weights), it still holds pretty well, especially when comparing a small child to an adult (or an adolescent).
So if e.g. your little sister is 120 cm tall and you're 180 cm, your gravity-to-air-drag ratio at a given speed is about 1.5 times that of your sister (and your equilibrium speed at which drag and gravity are balanced will be about $\sqrt{1.5} ≈ 1.2$ times that of your sister's, assuming a sufficiently steep hill for air drag to dominate rolling drag).
In other words, your dad was right. In an atmosphere, all else being equal, heavier objects really do fall (and roll) down faster.