I use QuicSilver on Lacey (gray mare) and it makes her stunningly white.
Lacey had some serious brown going on in her tail (left it unbagged all winter my first winter with her-worst idea evvvvvvver) and the QuicSilver made that brown light yellow. The only thing that's gotten the color completely out is just growing out her tail and cutting off the tips (and bagging it in the winter).
Sometimes the dirt literally dyes the hair (like in my case) and you can only lighten it, not get it out completely. :(
Anyway, try QuicSilver!
I like to leave it in for 15 minutes on the really dirty spots, just don't do that in already white areas. It'll turn the white-est areas blue for a couple of days if you leave it in too long. O.o
I've also heard of people using OxyClean, but I've never tried that...
Fabio - 13 year old Arabian/Lipizzaner gelding
Hazel - 14 year old Angora goat
Atticus - 4 year old LaMancha/Alpine cross goat
Rest peacefully, Lacey.