Problems with I2C on PIC18F25K22
Start simple, see if you can get an ack from the device, the proceed further.  Here is some working code from a pic18f87j50.

void InitEEprom(void) {
    TRISDbits.TRISD6 = 0;
    TRISDbits.TRISD5 = 1;
    OpenI2C2(MASTER, SLEW_OFF);
    SSP2ADD = 0x36;
}

int FindDevice(unsigned char Control) {
    unsigned int ErrorCode;
    IdleI2C2(); //Ensure Module is Idle
    StartI2C2(); //Generate Start COndition
    SSP2BUF = Control;
    //WriteI2C2(Control); //Write Control byte
    IdleI2C2();
    ErrorCode = ACKStatus();
    StopI2C2();
    return ErrorCode; //Return ACK Status
}