"Impractical" is an understatement!
The problem this stretch of line has is the differing speeds of the services using it. If it was reasonably possible I would new stations at Saltford and St Anne's (east and west of Keynsham respectively). If this was to happen the there would probably be a necessity for the line to have at least passing loops, if not necessarily four tracks. It would be less of a problem if Bath had more than two platforms, but I feel that similarly-disadvantaged Chelmsford has a greater need.
I do agree on the need for Cheltenham to have an extra platform. As a potential solution, why not carve a bay platform into the southbound platform (there is plenty of room!) and run a shuttle to Gloucester, and then terminate more existing services there? That way the two through platforms at CNM should suffice, and it would allow the Worcester runs to become hourly. To facilitate this, all non-London terminators stop short at Gloucester, and a twice-hourly shuttle is run with a 150 (one unit would do). The services via Stroud could then terminate at Gloucester if short, connecting into a local 150, or as current if an HST. This would also mean that units no longer have to cross the lines north of the station.