http://dl.dropbox.com/u/16909290/mariosonic2.cap
Basically I just created a new event sheet, and used some of your code in that, and organized it a bit. A few other things that I did was I got rid of your RunLeft/Right variables (I left them there, in case you wanted to compare) and replaced them with the [platform].VectorX command, which is essentially the same (below 0 for left, above 0 for right). The other command I put in for general speed was [platform].speed, for running.
You had a few bits of redundant code that I cleaned up a bit too, no sense having extra commands that do the same thing, but it's cool, you're learning.
for the turning, basically it says if the player's speed is going towards the left or right and the player is holding the opposite direction, it will play the turning animation.
For the duck, you had it right, just say when you are ducking "ignore movement" and on one of your always events throw in the "stop ignoring movement".
For the jumps, basically a sub event in the "when player is jumping" is "when space is not held - set vertical speed to 0". It feels a bit triangular, but I'll let you play around with it so you can get it to feel right.
Hope this helps! If you need me to explain any further, let me know.