Are the points important, the newly created helix, or do you need both?
If you only need the curve, try the Pull command. It will wrap the helix around the surface. If you need the curve with points, you could probably use the Divide command to do that.
I notice that your script doesn't produce as smooth of a helix as the pull command does (on a cylinder).
Also, if you create a line normal to the surface, from your script's new curve, the normal line doesn't intersect the original helix. Using the Pull command, it does.
Does this help, or have I missed the point?