Yes, I've used the zener + resistor method in the past when the PIC wasn't driving any load, but the LEDs are the problem. And to answer Chris's comment, the power comes from a 6.3 V AC supply that has one side grounded. So the 7905 is the only option. Anyway, I did find a 7905 locally and everything is now working perfectly.
BTW, if anyone's interested, the point of this project was to make a solid state replacement for a 6E5 or 6U5 magic eye indicator tube, which was used as a tuning indicator in old radios. I found a circular LED bargraph display on Ebay that was the correct diameter. So that was the motivation for the project. The details are here: **broken link removed**