My ds1 used to have a bath every night because he loved it and then all of a sudden turned into a nightmare with it.
I stopped bathing him for about 2 weeks, just stood him at the sink before bed and washed him over with a flannel.
Then started running a bath on a Wednesday as a play bath, so no washing of his hair (Loads of it)and no expectations, just let him play and stand up (He wouldn't sit down either)Once he got used to that and was ok to sit down I introduced the sunday night bath where he does have to have his hair washed. I got the goggles out and made it into a game. He still cries when having his hair washed but no-where near as bad as it was.
Now he's ok again. We've still only stuck to 2 baths a week with wipe down's inbetween but he's started to enjoy it again now.
I also, when I have a shower, run the bath a bit and let him sit in and play whilst I'm having a shower then just rinse him off before he gets out. He's been enjoying that as well.
Try those foam letters that stick to the bath sides or tiles when wet. Wilkos do them for £2. My DD (21 months) is a bit of a stander-upper but when she starts playing wih the letters she forgets and finds herself sat down!
As for the hair washing, I am expert in one cup to wet it, then shampoo, and 3 cups to rinse max! I think you can get a cup with a visor attached to the front but haven't tried it myself! or you can get special visors - just google "hair washing visor kids"
We also do a lot of rubber duck counting and lining them up on the side of the bath while singing "5 little ducks!"