Note that 'Advance' train tickets usually only go on sale approx 12 weeks before the date of travel. So you could pay substantially more for your tickets if you book now than if you wait until the new year.
An Anytime Return ticket from Birmingham New Street to Euston (using Virgin Trains) currently costs £170.00
An Anytime Return ticket from Birmingham Snow Hill to Marylebone (with Chiltern Railways) is £109.00
An Anytime Return ticket from Birmingham New Street to Euston on (slower) London Midland services is £75.00. (Note that there are only a few trains operated by London Midland on that route though).
An Off-Peak Return from Birmingham New Street to Euston (with Virgin) is £52.20
An Off-Peak Return from Birmingham Snow Hill to Marylebone (with Chiltern) is £29.20
However an Off-Peak Return from Birmingham New Street to Euston using London Midland services is only £28.00 or even just £18.00, depending upon when you travel.
Using Advance tickets (with Chiltern, between Snow Hill and Marylebone) can get the return fare down to just £11.00. (That's actually £5.50 each way, since you can't buy 'Advance Return' tickets). That's based upon the Advance fares currently offered for the end of this month (because, as I've stated above, it's too early to book them for March yet).
Note that:
(a) 'regulated' rail fares are due to increase by 1.9% in January ; and
(b) you can knock 34% off all of the above fares if you've got a Senior Railcard.
My favourite website for cheap accommodation is this one:
http://www.hostelworld.com/
(NB: Don't be put off by the word 'hostel' in that URL. There are lots of hotels and B&Bs listed there as well. Just carry out an initial search and then use the 'Filter' options).
Using some random dates in March, I've had no trouble in finding well-reviewed hotels in areas such as Paddington and Victoria for around £35 per night.