Мне на ум приходит хранить точки сетки в своей структуре типа vector3d{x#,y#z#}. Изначально инициализировать их значениями точек из plane.
Потом рисовать второй plane с режимом wireframe, немного придвинутым к камере, чтоб видеть сетку. Модифицировать его вместе с тем что с текстурой.
А рисовать управляющие точки можно в 2д с помощью проекций (но возможно это не лучший метод, но мне он приглянулся вдруг).
CameraProject(camera,selectedX[k],selectedY[k],selectedZ[k])
Oval(ProjectedX(),ProjectedY(),5,5)
selectedX(Y,Z) - координаты вершин
Наверное, месиво из круглешков получится (эх).
Ну а если сферами, то вот тут заменить код можно, вот это:
For x=0 To chislo_vertex
array_point(x)=CreateSphere(16)
PositionEntity array_point(x),-1,0,15
ScaleEntity array_point(x),0.1,0.1,0.1
EntityColor array_point(x),0,255,0
EntityPickMode array_point(x),1
Next
на это:
array_point(0) = CreateSphere(16)
PositionEntity array_point(0),-1,0,15
ScaleEntity array_point(0),0.1,0.1,0.1
EntityColor array_point(0),0,255,0
EntityPickMode array_point(0),1
For x=1 To chislo_vertex
array_point(x) = CopyEntity(array_point(0))
Next
А выбор вершин можно делать так. На клик мышки (MouseHit) выбираешь свою сферу, за которую тянуть. И покуда не отпустишь мышь - двигаешь. У тебя щас на зажатие (MouseDown) выбор выделенного, но это же шляпа.