Be sure to scroll down... there may be more than one question on this page!
The reason brass fixtures don't clean easily is because the corrosion is occurring underneath a protective film which is "supposed to" protect the brass from corrosion. The coating obviously didn't do a great job protecting the brass, but it sure does a good job keeping you from removing the corrosion!
Coated brass corrodes in the same way as painted iron. For a while, the protective coating is effective. Then, over time, small cracks and pinholes will appear in the coating... invisible to the eye but large enough to allow water vapor to make contact with the metal and corrosion begins. The corrosion loosens the coating causing still more corrosion... until the brass has widespread, uncleanable staining.
The only possible way to restore the brass is to remove the coating first, then strip the corrosion away chemically and finally recoat the brass with a clear spray lacquer sealer. The most efficient way to strip the lacquer is to use a methylene chloride-based (MC) paint and lacquer stripper. Less efficient are the non-methylene chloride strippers. Due to health concerns, it is unwise to use any MC stripper indoors without strong ventilation. If you are interested, I have an article at the site on the dangers of methylene chloride.
I didn't publish the article to be a scare-monger... especially since in some circumstances MC is the only sensible option. I just want folks to be aware that this is a potent chemical to be used with great care!
Before applying the stripper, disassemble the fixture as much as possible, removing glass and any screwed-on parts. Remove the lamp socket and wiring, too.
I don't recommend using any harsh abrasives on the brass unless absolutely necessary, since you will scratch the finish. Instead, be patient and let the stripper do it's work. Use very fine steel wool to do the final cleaning.
Once you're satisfied that the old finish is completely removed use a chemical (not abrasive) brass cleaner to remove all tarnish. Assuming your brass is really brass, it should now be shiny and new-looking. If the fixture is brass-plated, it should still look good UNLESS the corrosion has penetrated through the plating... then you will have discolored areas that cannot be restored. Hello, dumpster!
Spray the fixture with a few coats of clear lacquer to protect it from further corrosion. Krylon is one popular brand. Follow the label instructions regarding lacquer application. Be careful not to overspray, especially the first coat. Unlike wood, metals do not absorb any of the lacquer and even slight overspraying will produce immediate runs and drips! Apply "very light" coats spaced by five minutes or so.
Don't be concerned about missing spots in the first few coats... after you have applied four or five coats you should have hit everything. You can also brush on a little of the lacquer into difficult areas by spraying some into a clean coffee can or plastic tub till you have enough to brush on. Work fast, because it dries quickly! Keep the brush in lacquer thinner between coats and wipe off with a clean cloth before using.
A final note. Many companies are now offering guarantees on their brass finishes. Baldwin, for example, offers a lifetime finish guarantee on most of their brass products. However, since it is not transferable to a new owner its value is somewhat diminished in my view. The fact that they any guarantee at all shows that they have taken care to apply an adequate finish to their products... as opposed to most of the run-of-the-mill "throw-away" brass sold by many discounters and home stores.