hi guys, thank you for the help...
yes tried port and lat alternates same results.

i wrote a test sequence to test all the IO pins sequentially... and i marked on the data sheet which pins were not doing what they were supposed to and then noticed a paturn.

I read the device registers for things like MSSP, EUSARTS, PWM etc etc and found that after a cold start these registers were not in the states they were supposed to be acording to the datasheet. So basically, their was hardware turned on that should be off that was taking control of the pins.
I modified the program to reset any register that wasn't in it's proper state. once i did this everything worked perfectly.
I went through the remains of the last batch of 46K22's (~15) and found that every single one had the same issue, but once the registers were reset they never had an issue.

So, thursday last week i sent a large email bug report to microchip detailing what was wrong and what it looks like that is the problem. I also included the chip batch numbers.
As of yet, i have only received the standard acknowledgement of email... which i find to be quite disappointing for such a large company.

I also searched micro-chips documentation and forums etc for any other report of this issue and i seem to be the first / the only one...
So, in the event someone else has a similar issue, this details how to diagnose it and then fix it.

EDIT:
It's a shame that PBP3 didn't come with a simulator... it was also quite disappointing.