Let me give you some advice. Google "Goldwell" color. There's a spot you can type in your zip code to find a salon near you that uses this color. Get an appointment and go let them do your color.
Tell them that your gray is resistant - ask them to "scrub" the color against your roots with the brush. This helps make the color work better on the gray.
Goldwell stays VERY WELL in your hair if you use the proper shampoo. I have a feeling you aren't using the proper shampoo, if your hair is gray in two weeks. The colorist can tell you what to use. I get my roots done probably every 5 to 6 weeks (yeah, I have really gray roots and sometimes I wait too long to save some money), but my hair color overall looks great.
Here is another idea for you that I feel has made a difference for me. Have the colorist put Goldwell highlights in your hair. I have the minimum - I think it's 6 - tell your colorist you want that. It starts out very muted. As time goes on, the highlights lighten considerably. The reason I like this is that it helps make my tray roots, as they grow, not look SO different from my hair. If I were you, I would only get the roots done every other time, or even 3 times to getting the ends done. If you are using the proper shampoo and conditioner, you won't have a problem with the color fading. If you are using the proper shampoo, getting Goldwell color on your hair, and have some highlights, you don't need to have all of your hair colored everytime. I would NOT color your own hair. I'd let the colorist help you.
I learned to do this and my hair is so much better than it was before. Goldwell is wonderful color, and I'm never going to switch brands again.
Dawn