I used this board:
https://www.adafruit.com/product/2471(Adafruit HUZZAH ESP8266 Breakout, PRODUCT ID: 2471)
There are a lot of I2C documentation sources available on the internet: datasheets, tutorials, etc. Once the topic is familiar, I recommend the Atmega328 datasheet to get into the details.
With I2C being a standardized interface, my experience says that any interoperability issues has its cause in SW. Hence, testing and source reviewal is the only way to find out (either by you or someone else).
For the ESP8266 I2C slave support in particular, it is a SW-only implementation. Hence, any issue (on the ESP8266 side) is either a SW bug, a timing issue, or a combination of the two. Some timing issues are known and unsolvable(?) such as the interrupt latency resulting in the maximum communication speed being around 15kHz.
I have some additional boards that I plan to test. So far no luck in prioritizing it, however.
The board I have, have been running more or less continuously since put in action. Only once, I had to manually reset it. That time, the MQTT server had changed its IP address. Maybe that clogged up something and made the ESP8266 freeze. (I have yet to activate the WD to avoid anything like this in the future.)