This looks like standard case of floating point error. If we subtract the two results and use Chop we get:
{0, 0, 0, -9.9996*10^-7, 1.*10^-6, 6.60625*10^-10 + 5.08267*10^-9 I}
This is pretty close to a vector of 0s, so the results aren't far apart. I wouldn't say it's completely wrong. Do you believe that the floating point error is too high? If so are you mixing symbolic and numerical computations? Symbolic manipulations on floating point numbers aren't always the most numerical stable way to calculate something.
You can always improve the accuracy/precision of the results by staying with symbolic evaluation or using higher precision numbers.