The thing to remember is that the visible object, i.e. the mesh + textures is a completely different animal to the physical object which is simply a collision shape.
For a simple entity like a box the two things start off life the same shape and size and as long as you move it around using the correct instructions they will stay in synch.
But the physical object is only created once when the entity is loaded, it cannot be changed. So if you use the Scale() commands for example the visible object will react and the box or whatever will look bigger but the physical object will not change.
Animated entities are a particular pita because they are effectively changing shape all the time but the collision shape will not change along with it.
Any 'active' object with physics 'on' are under the control of the physics engine, as such you cannot move them explicitly using SetPosition or whatever (it may seem to work but under the covers it is just causing chaos), instead you must disassociate them from the physics engine (i.e. with CollisionOff) before you can move them explicitly, then you can use CollisionOn to to tell the physics engine to regain control of it.
If you don't do this then effectively you have engaged in a war with the physics engine, you want the thing over here but the physics engine 'knows' it should be over there!
If you want to use real physical objects and move them properly read my thread about this (just search for physlib).
Been there, done that, got all the T-Shirts!