Note that there is a distinction between the direction of the reflected ray and the position of a point on the reflected ray. As far as I can see, your calculations are based on position, but when calculating reflections (or refractions, if you ever need to do that), you want to work with the direction, not position. (And then at the end when you want an equation for the reflected ray, use the direction and combine with a point you know is on the reflected ray, such as the point where the original ray intersects the plane).
You should not need to use a cross product (and if I saw a cross product in someone's working for this I would immediately suspect they had done something wrong).