Never mind, I fixed it.
I noticed a design fault in my schematic - the SDA line has a removable link to allow the FX2 to be isolated from its EEPROM. Unfortunately, the pull-up on the SDA line is on the EEPROM side, not on the FX2 side as it should be. So the SDA line on the FX2 was floating. I soldered in the link and all is well. I guess since SDA was left floating the startup behaviour is undefined; it just happened to work on one board and not on the others.
Thank you for posting the fix. It might be useful for others with similar issues.