I'd try osmand.
It's cheap enough (use the free version and then spend $4 if you like it). It might be worthwhile to spend the extra $2 for contours.
So try it.
osmand can create routes but I'm not sure if it can save those routes.
You can load tracks to osmand and have it follow them. If you go off track, it computes a route to the nearest point on the track.
I'd set things up so that you can see the map while you ride and not rely completely on hearing the instructions.