to train for hilly races, don't do just hill sessions(run up a hill adn walk down recoveries), try and find a hilly running route which has one exceptionally big hill in the middle, then do your run, stop at the biggest hill and do a shorter hill session on it, quite fast paces('cos faster resistance/hill running is better training) but don't push so far out of comfort zone as to be in the uncomfort zone(you still have to run home!!!
also remember that training power(such as hill sessions)also trains endurance -to an extent- but training PURELY endurance will NOT train power. that's why it's good to incorporate the hill sessions into the already hilly run(best of both worlds).
this has brought me success, and a noticible improvement, in time, comfort and the ability to make a quick pickup on the flat without lactic buildup.
also remember to make your training specific to the race you intend to run. i would tend not to race if i hadn't run the distance of it before on a training run under the same conditions as in the race(with the exception of a mara. which i haven't run).
i know i'm going on here, but you asked a question i have some experience of,
similarly, incorporate some weekly cross training into your run. i think cycling woulod be ideal. it's low impact and gives the ol' joints a break, and trains some similar muscle groups. especially the quads. try to do mountain byking, hilly cycling or off road/X-Country cycling. it's far better than the stationary bikes, which always seem a little bit false to me.
finally, keep it enjoyable. you won't want to race anymore if your training fdor it becomes a chore, you shoulc try to vary your terrain and location just to fight monotony. that different terrains/surfaces will also reduce stress on joints/tendons caused by solely running on the road.
I AM NOT EXPERIENCED ENOUGH TO SUGGEST A PROGRAMME, BUT ANYTHING I HAVE TOLD YOU HERE I HAVE FOUND FROM MY OWN EXPERIENCE AND EXPERIMENTATION IN MY OWN TRAINING SESSIONS>