I have a similar problem with my wife's 04. The e36s had separate check valves beneath the nozzles that would get old and need replacement every decade or so, but I have not figured out where the check valves are in the e46, if it uses them at all.
Water is very hard where I live so I use distilled water in the windshield water reservoir. I have been using it in all my cars for 30 years. I probably use only a gallon a year in each car so the cost is negligible. That keeps the nozzles from getting dirty, but I still have erratic spray on the '04.
You may find that most stick pins are too large in diameter, but sewing needles are made thinner, or a wire from a steel brush should work.