probably the transistor in use is a digital type with internal resistor or logic mosfet. that's why you don't have any external resisotr.

no resistor on PORTB... probably the internal pull-ups where in use. I bet the pushbutton are between PIC and gnd!

The major cause, as i suspect, might be the current provided by the power supply, must be unsufficient to make the 5 volt line goes to 3.5 volt. Use another power supply.