@fify-- Don't worry, you might be able to get the stains out, even though it's usually tougher as more time passes. I'm a tailor and have been working with silk for many years now. When silk has been stained, the best thing to do is to wash it with cold water and take it to the dry cleaners immediately. You can also buy some dry clean solution or stain remover that is safe for silk and apply a little bit (follow the directions on the bottle) on the stain. Getting stains out of silk is hard. I tried and failed several times, silk tends to absorb stains very quickly and finding stain remover that removes the stain without damaging the silk is difficult. That's why you're better off taking it to the dry cleaners.
To prevent fading, you can definitely add some vinegar to the rinse water. Another tip is that unless there is a stain, for the first three washes, only wash silk clothing with cold water. Don't use any detergents. After three washes, you can use any mild detergent as you have been doing. Also, once in a while, maybe once or twice a year, depending on how often you wear it, I wash silk clothes with a shampoo that contains protein. This makes the colors look brighter.