NXT motors spin when in air but stop on ground
NXT and EV3 motors don't slip unless set to coasting. This means that any external means to speed up or slow down the motor will be counteracted by the motor control. I believe basically one or more of your motors is acting as a brake for the others because the controllers believe that they should act that way to obtain the desired speeds you programmed them.
Even if all things are equal (desired motor speed, direction and wheel diameter), other minor variations within the motors can cause variations in the total speed that are counterproductive...

I once created a sumo bot having three motors, the intention being two motors for tank steering and an additional motor to provide extra power. I think this is similar as to what you are trying to achieve. My solution was to combine the motor speeds with differentials (as present in several technic vehicle sets)...