I can give you some of this, but since it's only something I "fiddle with" I don't have anyway right now to provide all info.

I'm running it on 3 volts
Don't have emitter voltage, but it can drive a sound board that runs on 3-4 volts
PNP common type 2N4403
Buzzer is your run of the mill transducer driven from PIN through cap

I don't have a "small" version of the program.

If the line says GPIO.4 = 0 the LED (or the sound board I have on it) works properly.
If I then use GPIO.2 = 1 or I use SOUND GPIO.2 [whatever value] then port 4 goes HIGH instantely.

Switching port 2 back to low does NOT reset port 4 to low so it just works one way.

The idea is that there are three buttons that play different combinations of the SOUND command depending on how they are pressed. With each press there is also a confirmation beep. At the same time there is going to be a sound module working on its own. The confirmation beeps should play and have no effect on the sound module.

The sound module power runs through the transistor which is acting just like a switch that can turn the sound module on or off depending on the value of port 4.

I removed SOUND command that would play the confirmation beep and tried it that way. Without that port 2 address happening the PIC would turn the sound module on or off with the button presses just as it should. That suggested to me that port 2 addressing was causing the problem so I then put a HIGH 2 command in place of the sound command and tried that. Sure enough, the second port 2 went high port 4 did as well.

I will work on a version of the program that is short that I can post here. I'll have to remove a lot to boil it down then I will post that.

Thanks.

Bart