Hi Rob,
The PIC that I used, the 12F1840, has an on-chip Phased Locked Loop and it can be enabled in the Configuration Word (what I called the Hardware setting) or by setting the appropriate bit in the OSCCON register (what I called the Software setting). I tested both ways in case there was some silicon bug.
The I2C device that I used is a 128x32 OLED display, which I've previously used with a different microcontroller (not PIC), and running the I2C clock at more than 20MHz.
The 12F1840 does indeed have hardware I2C functionality, but I was deliberately testing the I2C Software library to see if "speed=255" was feasible at reasonable PIC oscillator speeds.
Regards,
Mike