Interpolate doesn't take into account velocities or ping. It merely takes the current object position and adjusts it over "interpolate" ms to the new object position when you receive an update.
I believe 64ms was chosen because while Tribes updates at 32ms intervals internally, you only get ~16 updates/second max per object unless you are on a listen server ( 1000/16 = 62.5 ). This means when an update occurs, you will not be caught up to it until 64ms in the future, at which point you will probably get an updated position, leaving you 64ms behind again.
That is what causes the soupy warping that you can notice if you have been using 0 interpolate for a while and go back to 64. The data with 64 interp is not only wrong, but also varyingly wrong as it interpolates from 64ms behind to 0ms behind, and back to 64ms behind when a new update comes.