Hi, I have not read all of this thread. So you might already know this.
I just want to tell you that the Bed Leveling in Marlin does not compensate bumps etc as in its calculation only tilt a flat plane no matter how many points you measure. You can see this in planner.cpp in the function plan_buffer_line() which calls apply_rotation_xyz() for the compensation.
I discovered this the hard way and I have now written a mesh based leveling feature.
You can read about it here https://github.com/MarlinFirmware/Marlin/pull/1619
I don't have the setup to do auto measuring so I use the display and the encoder to measure and step through the points.