The ECU does not cause overheating.
Bad thermostat, bad water pump, leaky hoses/radiator, wrong coolant, lack of maintenance/coolant, bad cooling fan or relay or blocked radiator cause overheating.
Overheating causes head warpage and leads to dead engines. Also you CANNOT mill a BMW head and have it work in most cases, they require straightening (much more expensive) That's why you ALWAYS keep an eye on the temp gauge and if it starts to overheat you pull over and turn it the hell off immediately. Properly maintained systems RARELY overheat (and that's true of just about every make and model).
I'd say find an independent that specializes in BMW. The dealer CAN help but is expensive and far more outfitted to stuff less than 10 years old. The old cars are fairly easy to work on and get parts for, just don't take it to someone who thinks a computer will cause an overheat, I wouldn't even take a 1974 Pinto to that guy.