Did you remove the RestartI2C before you took those pictures?
Is there really only 8 clock cycles in the last picture? I think during every transaction there should be 9 clock cycles. 9th cycle is the ACK bit. Well.. if there was a ninth clock, the result would be NACK (no-ack). Maybe PIC omits the ninth clock in case of NACK?
I noticed that now you have replaced the "repeatedStart" with "restart".. that is wrong.
Check your code sequence carefully now...
I think it should be
C:
//Read 'y' Cursor Position from Slave
StartI2C();
putcI2C(GLCD_WRITE); //0x8C = GLCD Address (R/W cleared)
putcI2C(0xFE);
putcI2C(0x07);
RepeatedStartI2C();
putcI2C(GLCD_READ); //0x8D = GLCD Address with R/W set
IdleI2C();
unsigned char i2cReadData;
i2cReadData = SSPBUF;
StopI2C();
Also, the original blue code in the first post uses "stop" and "start" instead of "repeatedstart". Try that also, now that you have removed the "restart" from the end.