Oh man.
Why you use PhysX for your movement?
Use c_move and c_trace and move a passable physx body with your player.
This also do its job when you want to kick rigid_bodys.