The Adafruit RGBLCDShield uses a MCP23017 I2C I/O Expander. You will find others have had problems with this chip with the current Photon firmware if you search the forums for MCP23017. It is almost certainly caused by a timing bug in the HAL_I2c.c driver that causes an ACK instead of an NACK to be sent to the device at the end of an I2C read sequence. The only way to resolve this is to reset the MCP23017 or send it a dummy NACK sequence by generating your owns 9 clock cycles on SCL with SDA pulled high. I see in github issues that a wire.Reset() function will be in the next firmware cycle to do exactly that, although I would rather see Particle fix the real problem. I have sent @bdub some information on what I think the issue is and how I feel it can be resolved. I can send you the same doc if you PM me with your email address.