It's a round-off problem, coupled with a strange bug. The vector "norm" does not contain integers. That should not be a problem, as long as the gcd function either accepts them as integers to within some tolerance, and then rounds them internally, of flags an error. With a list of scalars it seems to do that, but with a vector there are certain cases where it just gives a bogus answer.
Richard