If you play with the PIC internal MSSP, you have to use the default pins... same for PWM and USART.

If you use I2CREAD/I2CWRITE, you can use almost any i/o as it's a software solution. Like SERIN/SEROUT against HSERIN/HSEROUT