This site is very good for telling you bus routes. >http://www.traveline.info
However, www.nationalrail.co.uk is the best site for finding trains & fares. On longer journeys, it pays to book in advance specific trains (like 11 weeks) but even purchasing the day before saves money.
If you are going from Stratford-upon-Avon to Penrith by train, you will probably find it cheapest to pay on the day from Stratford-upon-Avon to Birmingham & then pre-book with Virgin Trains from Birmingham (New Street) to Penrith - then bus to Keswick. (I would spend an hour or two having a wander around central Birmingham).
When you go from Bath to MIM, you will pass through Oxford. I think it would be silly to pass through this historic city and not see it. I would advance purchase BTH > OXF train ticket from:> https://www.gwr.com/?gclid=cjyg8yte58ocfuiegwodp7akqq. Have a look at Oxford and then back to the station for a pay on the day ticket to MIM.
To get from Penrith to York by train, you will need to change at Manchester (Piccadilly = main station). You will save a massive amount of money by pre-booking specific trains Penrith > Man & Man >YRK. Goodness knows why it is so expensive to buy one through ticket - but that is the madness of British rail pricing.
However, another way of getting from Penrith to York is to leave Penrith & head north to Carlisle (change) and then across to Newcastle (NCL) where you change to head south to York. A pay on the day single from Penrith to Carlisle is £7.50 but some trains are priced at £3.50 if you buy in advance - even the day before. I see a through Advance purchase single for CAR > YRK via a change at Newcastle can be purchased for £24. This departs Carlisle at 9.43 on a Scotrail train. Otherwise, it looks like a pay on the day £22.90 from Carlisle to Newcastle & then an Advance purchase specific train NCL > YRK which can be purchased as low as about £12. If doing this, it might be worth having a look at Newcastle en-route - though I have not been to this city recently.
Here is a 3rd way of getting from Penrith to York. Take a train to Carlisle (as described above). Then CAR > LEEDS but tick for direct trains only on the National Rail website. You can get advance purchase tickets for £11.50 and this takes you via the scenic route over the moors. Then you san buy on the day a ticket from Leeds to York for about £13. If doing this route, you could take a taxi for about 5 miles from Penrith to Langwathby - which is on the same railway and thus cut out going north to Carlisle. Bus from Penrith to Appleby may be another possibility for picking up this rail route.
You may also like to know that Windermere (WDM) in the south Lakes has a rail connection and you can advance purchase a through ticket from here to York (change in Manchester) for about £15 to £20. As 'Anita' says below, the road between Keswick & Windermere has been damaged by floods - which explains why the bus service has been temporary closed. (Find places on Google Earth if not sure where they are).
I would consider going from the Lake District to Edinburgh for a couple of nights. Penrith to Edinburgh (PNR > EDB) takes only 1 hour 39 minutes & you can get fares at low as £10 with advance purchase specific trains. EDN to YRK takes around 2 hours 30 minutes - again - advance book specific trains.
You can get from York to Cambridge with 1 change at Peterborough. (It might be worth checking for a split ticket price at this point).