Intersection/projected points with mesh not actually on mesh?

So, I’m trying to project points onto a mesh and extract the distance between the base point and projected point. (That’s to calculate the volume between the cylinder and the mesh for each subface of the cylinder.)

At first, it seemed to work, but upon closer inspection, the generated points of either a projection or intersection, do not appear to be exactly on the mesh. I’ve tried different methods and provided the GH file if someone wants to take a look.

Additionally, the method with Mesh | Curve intersection does something horribly wrong and I don’t know why. I should have as many distances as point pairs.

Lastly, if you know a better (more efficient) method to calculate the volume between the cylinder subfaces and the mesh (or an approximation, as I decided on doing), I’m all ears.

Thanks in advance.

points on mesh (143.9 KB)

It could be that I am fooled by the representation in the viewport.
Although these are just planar mesh faces, so the preview isn’t really that special.

If I calculate the closest point on a mesh for each projected point, the distance between both points is zero in all cases. So maybe I should just assume it’s actually on the mesh…