Sorry I've been off-line for so long (my work on MathJax has kept me away from WeBWorK for a while).
The real issue here is that the Operands for '+' must be of the same type that you get is a bug, and represents an error in the differentiation code. It turns out that this is due to an error in handling named constants (like i, j, and k); they were replaced by a scalar 0 rather than a zero vector, and so the differentiation formula ended up adding a vector and a scaler.
I have prepared a fix which is available in the differentiation branch of my fork of pg-dev. It modifies two files, which you can simply download and replace the current versions.
I also added differentiation rules for dot products and cross products, so not only should be able to use your original checker with these changes, but you could also use the
$sVec . iapproach to obtain the coordinate functions for the student's answer and differentiate them (though this is effectively the same as
$sVec->D('t') . i).
I will write more about why
$sVec->valuedoesn't do what you want later.