I used GM for a hot second forever ago, and it prob'ly changed alot since then, but can you make it so that...
If you're on a slope and pressing the movement button, your maximum horizontal speed lowers, but the y + 1 or something? Or maybe make it so that if you're in contact with a slope, something like "slope = true," the character behaves differently with the movement button presses...? Like, if slope = 0, move like normal, but if slope = 1 & key pressed, horizontal movement = relative speed + 1 & vertical movement = horizontal speed/2...?
So that way, when he's going up the slope with acceleration, his horizontal speed won't exceed the actual angle of the slope.
Well, if that can't be done, I apologize for injecting this problem with my stupidity.
Oh, by the way, those screenshots look freaking delicious...and did you ever fix the sprite+bg problem?