when it ran hot you obviously didn't stop and you may have a headgasket malfunction on your motor, take it to your local shop and the technician there should be able to fix it for you for about $550
You're probably losing compression because the head was warped from the heat. Could be as simple as a head gasket, or as complicated as a new head. You should always pull over and turn off the engine if your car is overheating. Never overheat your car.
when there are signs of overheating, turn the heater to max and blower to max this will help cool the engine
That is a good thing to do, but you should still pull over at your earliest opportunity.
Looking for a Used 3 Series in your area?
CarGurus has 32,735 nationwide 3 Series listings starting at $1,200.
Search BMW 3 Series Questions
BMW 3 Series Experts