can't figure out why dsPIC digital input is not working
I finally figured out the issue.  The DSPIC has something called the AD1PCFGL register which by default disables the buffer whose input is the pin voltage and output goes to the "read port" hardware.  It must be explicitly enabled in software for any pins whose voltage you'd like to read.

Roger Rowland you were right!

Thanks