Definitely the coding plug in the front of the cluster. Swap it out and you'll be fine. Your tach is misreading the coil signal input from the Motronic ECU. The tach sweep calibration is determined by a number burned into that chip (also the speedo, fuel tank level and coolant temp range).
So the cluster is assuming that you're firing six spark plugs every other crank rotation. Our M42 only fires four plugs every two rotations. Thus your tach will read exactly 2/3rds of the actual engine speed...given that Motronic kicks on the rev limiter at 6300 on a stock M42, you should feel it cut out at 4200rpm indicated.
Why it doesn't read off the crank wheel or one specific plug is totally beyond me (likely a fail-safe design or due to the COP setup), but that's the way it was made.