I have found some examples that I have massaged to get some way to a suitable working example but it's a bit inconsistent and not quite right. I have the application note but I have found the examples I have quite different in the way the are implemented and work - get a lot of errors from the older drivers because they use older i2c commands, but even with the new commands it doesn't work as I imagined. Much searching hasn't turned up many drivers/applications/examples but they might be hidden in other code.
One intended application is to read some relay closures, with the GPIO pins set as inputs with pull ups, but the contact closures are not detected correctly. other applications would be similar, reading switches, keypads, running displays etc. The display example I have (D. Hylands) works quite well and I am using that in a modified form. not a lot of speed required for the setting and getting options either.
I have the X and Y i2c busses on the Pyb D working very well, other sensors are addressed and work with great stability so that is not the option, and the custom IO board I made up tests OK statically, but this MCP23008 device is giving me grief.

Thanks in advance for any help. Steve W.