Also, I would not recommend the likes of rain-x on the inside of the screen. It can be hard enough to get a good clean screen after using it on the outside.
Sounds like a moisture problem. I had a leaking gasket on the hard pipes that supply the heater matrix on my 318is. Wasn't leaking alot but enough to cause a problem.
Check all around the vehicle carpets to ensure they are dry and also the boot well and battery compartment. Any water inside the car will cause an issue