I know it's late, but after fighting with Angelscript and Ogre on 64-bit Linux for way too long, I hereby report that the issue has been fixed!
r = engine->RegisterObjectType("Vector3", sizeof(Ogre::Vector3), asOBJ_VALUE | asOBJ_POD | asOBJ_APP_CLASS_CA | asOBJ_APP_CLASS_ALLFLOATS); assert( r >= 0 );
the all floats flag did indeed fix the issues
Instead of just asOBJ_VALUE | asOBJ_POD | asOBJ_APP_CLASS_CAK.
Had to do the same thing to Quaternion.
I never thought I'd live to see it work..
Thanks a bunch Andreas Jonsson!