Think of it in a mathematical sense, not from a coding perspective. Step through all the different mathematical operations and make sure that they make sense. If you don't know what one line does, figure it out. This will make sure that you know exactly what's going on and you will start to see where stuff could go wrong.
I know most about what it does (Normals, Vectors, and Interpolation), but not all of it. I've looked this code over plenty of times, and it should be working... I've tried everything I could think of...