Lol this is probably a dead one, but this sounds almost EXACTLY the same issue I had been having with my printer when I finally bought a Duet WiFi and tried to get my bed probe working. When It would home/level, and I did the paper trick, everything looked perfectly fine. But when I would start a print, the nozzle would be anywhere between 0.3 to 3mm above the bed and sometimes below... scratched a freshly installed aluminum plate that day...
Anyway, I posted on here about it, and everyone suggested that it was because I didn't actually have the bed leveling action dictating the final Z height. As in, after it homed Z using the probe, it didn't actually 'save' the detected height. And so when it went to level the bed, it didn't have the proper height saved to begin with, and thus all the leveling showed my bed was 1-3mm below/above the expected Z0. Thus when it started a print, it'd float up in the air/dig into the bed...
I forget what the actual code is, and I'm not near the printer atm to be able to look at my configs, but I know there was some GCODE I had to implement after homing and after probing, that dc42 had told me to add if I remember correctly. It basically forced the Z Position to set based on whatever the sensor detected. Since then I've had nothing but amazing first layers print after print. Only issues I've had is when the extruder borks up and I gotta clear the ptfe tube...