So as i understood you are doing a full physics simulation, vanilla without anything (Correct me if I understood it not correctly).
Thats ok should work.
1 - First things first do enable gravity on all simulated physics bodies.
Not because gravity is required for the cart to be balanced, but to keep the system consistent with the world forces. If gravity is disabled the constraint motors and torques can behave a bit misleading since there is no constant downward force.
2- Make your chasis fully aligned in positions relative. Thats important for overall stability.
Ex :
WheelFR( 100,50,0) - WheelFL (100, -50,0)
WheelBR( -100,50,0) - WheelBL (-100, -50,0)
MineCarts Static Mesh origin is 0 ,0.
3 - Designate the main carts CoM as center of mass of all simulated bodies. Since you are using pure physics bodies (body + axles + wheels) its generally good if the overall center of mass ends up near the middle of the cart and slightly lower on Z for stability.
Example : if your cart body relative position is (0,0,0) and your WheelRight position is (100,50,0) then overall mass distribution should still keep the center around the body and not drifting too much to any side. A slightly lower Z center of mass usually helps stability.
Since this is a mine cart the system should be fairly stable if wheels have a decent edge collision and a medium friction and damping on the physics material.
4- Make a singe force applied for movement. Since this is a mine cart it can only pushed or pulled. Designate a force direction (ActorForward) x ForceScalar and maybe lets do with impulse.
Location = ActorLocation + ActorForward x Distance
// Apply forward or backward slightly outside of the cart. If cart length is 100 then 101-150 should be fine. Negative number if pull so you pull from behind lowering torque, pulling with a rope / lazy move)
// Location = ActorLocation + ActorForward x 150
TargetImpulse = ActorForward x ImpulseStrength
// Try and error could require a big number but something makes sense.
OnTick->AddImpulseAtLocation (Location , TargetImpulse)
Using angular forces on wheels is something different and requires a different logic. If you apply torque on the wheels through constraints, remember that the torque you apply on the wheel will also be applied back negatively to the parent body (the cart) because of the constraint. So the system will try to rotate both bodies unless something counteracts it. For every action there is a reaction so to nullify that reaction you have to manually add counter forces on parent body. If things balanced very nicely sometimes even that is not required but if torque is minor masses are already overcoming that issues (Wheel of a locomotive). For those you can use force limits on the contraints also contraints parent dominates bool kinda works sometimes.
Chaos vehicle works on this principle so its more accurate in terms of force application. However for a mine cart you might also want to consider how these carts usually move in reality. They normally dont steer and dont have motors, they are generally pushed or pulled, so sometimes a single directional force can be enough depending on your design.
Apply these forces on tick, preferable you can make interpolation of forces gradually increasing
FinterpTo ( CurrentImpulse , TargetImpulse )
5- Adding additional forces on the vehicle : As I understand you are making an anti roll torque on vehicle. If thats the case try to scale this forces by vehicles lateral velocity.
If the game is more arcade like and there are turns, loops or you want to keep the vehicle on the tracks you can also consider some spoiler type force pushing the cart down. This is not really to fix backflips but more like an extra stabilizing force.
Depending on the game this can be a constraint which i dont like because it feels like artificial gravity. I usually prefer using an angle approach.
Simply get the lean of the vehicle against world Z (default gravity) and scale the spoiler force with the lean. The more it leans the stronger the force pushing the cart down into the tracks.
Example :
OnTick->AddImpulseAtLocation(ActorLocation, Dot(ActorRight, FVector(0,0,-1)) * SpoilerForce * ActorUp)
You can play with spoiler force x speed and direction this can even when correctly calculated can keep vehicle upside down for a while if you have loops 
Let me know and would be great if you can put some more screen shots.