Just in case
https://learn.adafruit.com/working-with-i2c-devices/hot-swapping
The problem was a bad Adafruit_SSD1306 OLED display. It always displayed its address for a scan but the display itself only worked intermittently.
Sorry for any confusion caused by my use of the term "hub" for a chain of Grove I2C connectors, I couldn't post a diagram as I was working from a mobile phone without a drawing app. Perhaps it might be worthwhile to actually define what a I2C Hub actually is, in my case it was simply using Grove connectors rather than connecting via a breadboard using Dupont jumper cables.
Anyway thanks for taking the time to help!