I can't really give you a direct solution as I'm not really understanding everything you are doing yet, but here are some general things you should think about:
1. Why aren't you using platform behavior? Rotating the planets instead of the player may present some problems. I see what you are trying to do but I don't think it's the most efficient way.
2. You are not using dt in your expressions. check out this tutorial.
If you change to something more 'conventional' (player with platform behavior, gravity angle, and solid planet) many of these issues will resolve.