This is your Issue ? https://github.com/ricaun/DuinoCoinI2C/issues/49.
I can not find a serious problem in the code for the Slaves at first glance.
However, looking at just a single file for the Master, I see strange things in this file: https://github.com/ricaun/DuinoCoinI2C/blob/main/DuinoCoin_Esp_Async_Master/DuinoCoin_Wire.ino.
It uses Wire.begin() a lot, but that should only be used in setup().
It seems to read one byte per I2C session. That is also weird. The Slave has no "time to breathe", see my notes about Arduino in Slave mode.
It starts looking at I2C address 1.
There is some random delay, in case all the Slaves are powered up at the same time. That random delay uses 9 bytes from the signature data (manufacturer data inside the Nano). Those signature bytes might be the same.
In the last years, the code for the ESP32 and the ESP8266 has been improved a lot. The Wire library is much more compatible with the Arduino Wire library. As a result, it should be used in the same way as the Arduino library. Perhaps those improvements are not compatible with the code for the Master.
Can you explain what is going on ?
What do you mean if you power it on often enough ?
Does it work and then stop working ?
Can the Master print a list of Slaves ? To be sure that the Master sees 10 Slaves.
Was the project on Github only done with 6 Nano boards ? and never more ? Then it could be a in the code, for example an array that is too small.
Is there something else connected to the I2C bus ? For example a OLED ? OLED display have the habit to disturb the I2C bus for others.