Sorry, I didn't mean for you to get rid of the other CONFIG settings... just change the OSC ones.

Here's a complete example
Code:
#CONFIG
  CONFIG  RETEN=ON, INTOSCSEL=HIGH, SOSCSEL=HIGH, XINST=OFF, FOSC=INTIO2, PLLCFG=OFF
  CONFIG  FCMEN=OFF, IESO=OFF, PWRTEN=OFF, BOREN=SBORDIS, BORV=3, BORPWR=ZPBORMV
  CONFIG  WDTEN=SWDTDIS, WDTPS=512, CANMX=PORTB, MSSPMSK=MSK7, MCLRE=OFF
  CONFIG  STVREN=ON, BBSIZ=BB2K, CP0=OFF, CP1=OFF, CP2=OFF, CP3=OFF, CPB=OFF
  CONFIG  CPD=OFF, WRT0=OFF, WRT1=OFF, WRT2=OFF, WRT3=OFF, WRTC=OFF, WRTB=OFF
  CONFIG  WRTD=OFF, EBTR0=OFF, EBTR1=OFF, EBTR2=OFF, EBTR3=OFF, EBTRB=OFF
#ENDCONFIG

'then later you can change it
OSCCON = $70     ' IRFC[2:0] = 111 (16MHz), SCS[1:0] = 00 (primary CONFIG osc setting)
' set PLLEN (optional, 4x16MHz=64MHz)
OSCTUNE.6 = 1

'with PLLEN=1 
DEFINE OSC 64
'with PLLEN=0
'DEFINE OSC 16

ANCON0=0	' digital IO AN7-AN0
ANCON1=0 	' digital IO AN8-AN14

TRISC=%00000000 'set PORTC as output all
TRISD=%00000000 'set PORTD as output all
TRISB=%00000000 'set PORTB as output all
TRISA=%00000000 'set PORTA as output all
TRISE=%0000000  'set PORTE as output all


GKO:
HIGH PORTD.0
PAUSE 2000
LOW PORTD.0
PAUSE 2000
GOTO GKO
If you're using a DVM and measuring 2.5V, that probably means the pin is toggling but it's too fast for the meter,
so the 'DEFINE OSC' doesn't match your actual settings and the 'PAUSE' is wrong.

Try increasing the pause time to 5000 or 10000

I want to run it at 16mhz and then try 64mhz, to see if there's any practical difference in i2cread and shiftout statements
You'll see a difference, but it likely won't be earth shattering.
To really effect the I2C speed you'd need to switch to using the MSSP hardware, and while that SHOUT routine I posted is faster than shiftout, it won't be as fast as using the SPI peripheral.