of corse it will run good going down hill. you have all the momentum "pushing" the motor to accelerate (the wheel starts to push the chain around the engine sprocket, rather than the engine pulling the chain around the wheel sprocket).
it sounds to me like a fuel problem....either a plugged up screen in the tank, a kink in the fuel line, or a misadjusted float. sounds like the carb is running out of gas.
no acceleration (forward movement of you and the bike) on flat ground when you give it throttle, could just be that the clutch is out of adjustment.
if the engine revs (like you say it does) and you do not move...the clutch is slipping. that's the only possible answer for that scenario... unless you are trying to ride it with the clutch disengaged. (clutch handle squeezed in)