I think you'll also need to take into account the direction things are moving when they first contact, to decide whether a contact should be enabled or not, rather than just the positions of things. Also bear in mind that the manifold normal points from body A to body B of the contact, and you can't make any assumptions like eg. the ground is always body A.
Backing up a step though, I don't see how this would fit in well with...
Quote:
the animation engine we use sets the position of characters in our game
If this is making things get stuck, it could be because you're teleporting them underground with SetTransform rather than giving them proper velocities? With TOI/bullet bodies and proper velocities, a polygon/circle shape should never tunnel through an edge/chain shape.