A couple of ideas...
Set some flag that says if anything is falling which is checked before you can start any more from starting to fall
I don't have the code with me, so from memory - when you touch an invader/gem it goes through the ones above and sets them to fall a set distance from their present y pos. I think the problem is that if , while falling, it is set to fall again. Some instance variable that says this this is where I am already falling to so add any further falling distance to this and this new (total) y position is where I will stop falling.