I am a bit suprised that it works at all. Because, when the collision is happening it is done with falling.
That logic is flawed.
Did you check the collision polygones? Do they grow with the animation (and shrink) ? That would explain why it sometimes does work. Because the animation, when it goes from frame 2 to frame 1, schrinks the collsion polygones on the moment it dedected a collsion, therefor it goes falling again.
A better way of dooing this is with ONLY a 'is overlapping at offset' with y = 15 pixels or so. Dunno how big your objects are.
More about those collision polygones animating. Imagine an object 1 pixel above animation fram 0. All is fine. No solids stuck in eachother. Then it animaties (like poof, in big steps) to animation frame 2, and suddenly the solids are caught up in eachother. Got to watch that, dangerus, errating movements as result.