Had this issue in my old E36 and it was heater control valve. Think the new part was something like 60 quid from the dealers