PCA9685 y EEPROM

Bueno parece que no nos entendemos entre lo que he querido hacer para ayudarte y lo que respondes.
Yo intento resolver las cosas de la forma mas simple y fácil desde mi entorno.
A veces porque tengo ganas simulo todo pero lleva tiempo, sabes!!.
Ahora en este caso no tengo los pulsadores y me resultaba mas fácil simular situaciones que son las que tu alegabas que no funcionaban.
De ese modo probé el código y donde vi que no respondía lo comenté porque no tengo ni los servos ni el shield PWM de Adafruit, pero con quitarle el comentario se vuelve funcional para ti. Me parece que eso es obvio, y que no merece comentario alguno.

El monitor si queda en bucle infinito es porque justamente la idea era esa probar que las posiciones de los servo se actualizan y eso hice y quedó probado.
El resto es otra cuestión funcional a tu código.