The last time I did what you were doing, I used 4 arrays:
Array of current points (before edit)
Array of new points
Array of Midpoints for each leg (before edit)
Array of Midpoints for each leg (after edit)
You cannot use GLOB_MODPAR_NAME with arrays, so I had to increment through each midpoint array and its counterpart and see if there were any changes between them... even more fun is the reverse, if a point is moved on top of another removing a leg....
It's been so long since I did it, I can barely understand my own code, and it was one of the few people I ever wrote an object for who kept the rights to their code so I cannot even post an example.... sorry....
Tom Waltz