Hm. I think we might have found something here. I did the test you suggested where I used G33 X100 Y100 Z5 and changed distortion start/end heights to 5/10mm, just to test the compensation. When I moved to X10,Y100, and then jogged the extruder left and right across the print bed, there was definitely significant Z compensation, so that's good. However, I also heard significant binding of the Z-axis screw rods, and after jogging left and right a number of times the extruder would begin to hit the bed when beyond the 5mm "bump". It seemed pretty clear that the Z-axis was missing some steps when trying to raise, but not when trying to lower. Strange, since there is no binding and no loss of height when traveling or when homing under normal circumstances.
After digging into it, I think it's a problem with my setting for Z-Axis max acceleration. As I mentioned, this Wanhao i3 has been upgraded quite a bit. When I replaced the original Melzi board with a RAMPS 1.4, I set most of the acceleration, jerk, and feedrate values the same as the stock Melzi settings since I wasn't replacing the steppers. HOWEVER, one of the things I also changed was I replaced the 4988 stock drivers with TMC2100s. If you're not familiar, these things take as input the same 1/16 microstepping input as the 4988s, so the steps/mm configuration in the firmware is the same. However they internally interpolate from 1/16 to 1/256 on the motor output. It makes for VERY smooth and quiet operation. However, I suspect it also significantly reduces the torque of the motor!! I changed the Z-Axis max acceleration in the EEPROM from the stock setting of 100mm/s/s to 60mm/s/s and I don't hear any more binding on the Z-Axis when jogging back and forth across my 5mm "test bump".
I'm going to re-flash with my normal distortion correction settings, re auto-level and remeasure the distortion map, and see how things are behaving. I'll post an update tomorrow.
Cheers,
-A