Sorry but i don't have time to check code (nor i have glscene). I took i quick look on the vector unit and it seems ok at fist sight.

The system i explained above should work with 3d also (just use 3d vector math instead of 2d).
Plane/sphere collision should be easy too. You need a function that calculates the distance between a sphere and a plane. If the plane is perpendicular to the axis (is horizontal or vertical) than it's trivial, if it's arbitrary oriented then you need some more math.

Once you have the distance D, you check if D is smaller than the radius of the sphere. If it is, they collide.