OK, I failed to realise that the location in flash will change (although it does make sense now I think about it).

Limiting to 256 devices is no problem, there will never be that many in existence.

I think what I shall do is revert to an earlier version of my firmware that uses an extra byte in the USB Transfers to identify the device.

Thanks for the help Darrel.