Either the heater matrix is partially silted up (poor flow) or the thermostat has suffered the common fate (premature opening and cool running). Maybe both. I'd suggest running the Trip Screen Diagnostics to see what temperature the engine actually reaches. It may be lower than you think. As indicated, the temperature gauge is of no use for showing the running temperature.
Diagnostic Mode;
http://the75andztclub.co.uk/forum/sh...d.php?p=735128
TC