Hi Jim,
At 16Mhz you should have even more delay between the datapin going "true" and the rising edge of the clock - have you verified that it's actually running at 16MHz? (Can't see how that would actually make the data go true after the clock but anyway...)

When capturing the output with your scope, are you measuring on the PIC pins?
Are the PIC and the other chip both running off the same supply or are you doing some kind of level conversion with the 3.9k resistors?

Try disconnecting one side of the resistor and measure again to verify that the PIC is actually setting the states correctly.

I don't use MPLAB myself and the only thing I know I'm missing is source level debugging. As for the logic analyzer it's the Saleae LOGIC (8 channel version) - it's absolutely great for the money, worth every cent.

/Henrik.