While I tend to think the problem does lie with the heater valve, I'll just toss this out for consideration, the a/c computer could be at fault, but don't panic, the fix could be comparatively simple. Check this site out to see what it has to offer
http://www.macadamizer.com/bmwfix.html