I have only sometimes got make up stains on my bedding, but many times on towels and often it is impossible to get out no matter how many products you use. Guests were staining the wash cloths so badly that they might as well have been disposible.
The make up remover wipes have been a great help. I don't buy pocket ones. I get full size ones, for sesitive skin. They are 45p for a pack of 25 in Lidl. Actually, they were on promotion the other day for 36p so I bought a few! It is peanuts really and the guests are using them. The make up stains have become a rarity.
Then again, I do stick a label on the packs which asks guests to please use the wipes to remove make up, not the towels, thanks. I think that really makes a difference, because they stop to think, yeah, maybe I should be careful about not getting my make up on stuff, whereas before they never thought not to smear it all over the towels or pillow cases.
Some hosts say you must use cold water to remove blood stains, otherwise the hot water will set the stain and make it permanent. I have also heard that soaking them in cold water with salt works. However, I just spray with Shout stain remover, pop some oxy-powder in the drawer and wash as normal in the machine. That has always got the stains out. However, you can't do this with dark coloured sheets as it will bleach them.
Washing up liquid (dish soap) is quite good at getting greasy stains out of fabrics and is safe to use on coloureds.
I often buy Designers Guild duvet covers and pillow cases and have never had a problem with the colour bleaching in the wash. For the fitted/flat sheets, I go for plain, good quality cotton, but in white, cream or other very light colours so I can remove stains without leaving bleach marks.