If you think about it, the formulas for normal force, reactive friction force in the drivetrain, friction converted to traction force, or force required to move the robot forward uphill - they all look like this: F = W * some_coefficient, where the coefficient depends on various things, like drivetrain properties, slope incline, etc…
The important point is that, if system behaves linear, and you write an equation to compare, let say, force required to push robot uphill against the force of max traction you can get, given the robot weight, then Ws on the left and right sides will cancel out.
This means that it shouldn’t matter how much weight you add to the robot: increase in the force required to drive it uphill will be matched by the increased wheel traction.
So, if you have a counterintuitive case of wheels slipping after you add weight to the robot, it means that something is non-linear.
For example, adding more weight to the back of the robot will actually decrease the normal force on the front wheels and you will end up with front motors being underused and the power of the back wheel motors may not be enough to move the robot.
Do you have front and back wheels of the drivetrain linked to redistribute the power for such use cases?