As the schematic shows in post #1 you'd need a high on a specific pin of Port C and a low on a specific pin on Port B to turn on one LED. To turn on a whole row one pin on Port C would have to go high and all the pins on Port B would have to go low. If the LEDs would turn on they'd be very dim as you're sourcing/sinking through the PIC and you'd probably not have enough current to turn on more than two or three LEDs.

As the schematic shows in post #2 if the PIC Port was set to TRIS =1, high impedance, and the resistors were of the right value you could turn on both LEDs but they'd be dimmer than if the Port was set to TRIS = 0 and the Port set to 0, low = upper LED on, or 1, lower LED turned on.

The seven segment display in post #10 is a different animal than the other two. You'd have to have chip select somewhere or all displays would have the same number. You could do all the output on one Port but you'd probably have to use another port for chip select. I'm not sure what the CC pin does but it that is the chip select, IMHO, it can't be used as shown to do the chip select.

If you want chuckplexing I posted this http://www.picbasic.co.uk/forum/showthread.php?t=14220 post #17 to control 20 individual LEDs with only 5 pins. I have substituted successfully replacing the diodes with optoisolators to control 20 higher current draw devices.

If you are going to do a true LED matrix display I don't see how you can turn on a full row or full column with a high on one pin and only grounding one additional pin. They are designed to work like that.

If you want to use only one port to drive a dot matrix display you could a BCD to decimal, or BCD to seven segment, chip using four pins and then chip select with the other four.

If I'm missing something or am all wet, I'm sure someone will tell me.