There are no direct services from Birmingham to Bath. It's necessary to change at Bristol Temple Meads or possibly Cheltenham Spa (easier change but slower less frequent journey)
In the reverse direction there is one through train a day leaving early morning
Sorry can't answer your taxi question other than something like £2.50 a mile.