Wow o_o I suggest you get an animation manager for each object.
Instead of starting or stopping animations within other actions, create events that only pertain to the animations and make each animation happen in the order of importance. I'll show you an example from a game of mine.
<img src="http://puu.sh/3OFFi.png" border="0" />
This ensures that only one possible animation from this object can be playing at any given time, and you have all of the animations that will ever play for the object right in one spot. They will happen in importance from top to bottom, so if you have a falling animation, put that above the walking and idle animation.