Yes, I would first try projecting your intermediate point to match the curve geometry, and see if that helps. Also, is any of your data Z aware?
Regarding snapping, most likely the point is within the tolerance and that is why it is not moving.
If nothing is helping, perhaps you could zip up a small amount of data and your code and someone can take a look...