The wicking is what I would think is happening. If you think you can't get all the stain out (soaked in deeply) then try to dry it as quickly as possible (put a fan or hairdryer blowing on it right after you clean the spot) and try to not wet it too much. Use foam or a damp cloth, rather than wetting the spot. Although this won't remove the stain from below, it should increase the time between re-appearances.
As to the glass, if you are getting streaks, I would say you aren't fully removing either the residue or the cleaner. If you leave some cleaner behind, it will attract dirt to it-that's its job, to get dirt to stick to it rather than the window. If it's cleaner residue, try going over the glass with a second towel, after you are sure all the dirt has been cleaned up by the first one. THOROUGHLY buff the glass clean.
If it is dirt/film residue, you might want to try cleaning it with a mild APC solution first, then clean it a second time with glass cleaner. No one glass cleaner is going to be able to remove every type of film perfectly. Some work better with greasy film, some are better with organic stuff etc.