My horse is just as white as yours is, so I feel your pain.
Honestly I've just given up in the winter. Besides currying and brushing dry mud off and keeping the tail wrapped so it doesn't get stained (and helps it grow longer) I don't do anything until it gets warmer or show season starts.
For the summer, I hose him off basically after every ride (no shampoo just a good hosedown) and that helps a lot! In fact he stays pretty white with just that. Before a show cowboy magic and any blueing shampoo are my friends! For the face (because my horse HATES me washing his face) I first do a wet washcloth and then use Cowboy magic leave in shampoo. I always wash the entire body the day before the show, put in a leave in shampoo in any spots that are stained (I've found urine is the worst to get out. Dirt is by far the easiest even though it looks the worst!), I braid/band his mane and clip whatever needs to be clipped and put on his sleezy (covers whole head, neck and shoulders). Then I spray his tail with show sheen and a leave in whitener and braid it before putting it in a tail bag. Finally I put a light sheet over his body. You have to make sure the sheet/sleezy/tail bag all get cleaned if he lays in any poo, otherwise next time he may not stay as clean overnight.
I always plan on washing the legs twice: the night before to get all the crud off and the day of to get them sparkling. BE SURE to leave plenty of time for legs to dry before going in to a show or warm up arena! You can even towel dry if needed. I forgot this crucial step at a show once (or twice...
) and came out with a brown legged horse.
Good luck! You will spend a LOT of time cleaning your horse but it's worth it when you're sparkling in the show ring and everyone's commenting on how white your horse looks