I assume you already have the "move up a slope" code, you just want to know how to vary the speed with the steepness of the slope.
In that case, check the direction from the previous (x,y) to the current (x,y), and use that number in the speed calculation.
For example, try something like this:
CODE
/* Make sure you've moved before checking the direction. */
if (x!=xprevious or y!=yprevious) {
dir=point_direction(xprevious,yprevious,x,y);
}
/* Make sure the "dir" variable is never 0, just so we don't get a divide by 0 error. */
if (dir==0) { dir=1; }
/* Set the base speed, i.e. the speed whem moving straight from left to right. */
basespeed=5;
/* Calculate the speed based on the base speed and slope steepness. */
speed=2*basespeed/dir;
Removing the comments will make it seem smaller

. And you can choose whatever base speed you want.
-IMP

*EDIT* As for "flying off" with the same speed and direction, just use this:
CODE
direction=point_direction(xprevious,yprevious,x,y);
speed=point_distance(xprevious,yprevious,x,y);
As for rotating, you can use image_angle, but since that's the same thing as the transform sprite D&D... You'll need to make the sprite face dead right in the first frame, choose Animations->Rotation->Counter-Clockwise with 36 frames, 360 degrees. Then, in the STEP event, set image_index=direction/10;