How do I read from PIC18F4680 port D?
Since Wouter's guess wasn't it (it was a reasonable guess given the information you provided), it may be something electrical.  How exactly is the switch connected to the port pin?  Normally the switch would be between the port pin and ground, which means there needs to be a pullup to Vdd.  Some pins on some PICs have these internal.  If so, you can turn it on.  If not, you have to add your own pullup resistor externally.

If the switch is connected between the pin and Vdd, then you need a pulldown.  That has to be external because I know this PIC does not have internal pulldown resistors.

Your switch shows 3 pads.  Are you using all of them?  Show a schematic of exactly how everything is connected.

Added:

Your circuit (which wasn't described before) doesn't make much sense.  I don't see the point to the two resistors nor why a second I/O line is envolved in such a strange way.  The normal way to connect a switch is:



This is the simplest case where you only have a SPST switch.  Note that this method works fine with momentary pushbuttons too.  As I said earlier, some PIC pins have optional internal pullups.  In that case you can just connect the switch between the PIC pin and ground without anything else.  R1 is then essentially inside the PIC.

You have a SPDT switch, so you can do this without any extra parts than just the switch: