Hi longghead. The bounce and glitch around, I'm assuming is because of the collision polygon that changes every frame. A usual approach is to create a simple sprite collision box and pin the character to that object. What you control is the box, which will be invisible throughout the game. You can still test for collisions with your pinned character, but for movements, there won't be any bouncing around since it's square/rectangle that is consistent/not changing.
Is that what you meant by the invisible sprite? It actually seems like it, but I don't understand what you mean by allow other player to move the other direction. It should be able to move in any direction except when the direction is blocked by a solid.