I have the patch installed and it is reported as 2.50a by Microcode Studio.

I have put in this code based on what you posted:

define I2C_SLOW
'Constant list
GP_port con 0
LAT_port con 2
IOdir con 6
iaddr con $20
'Variables
ireg var byte
'Set up the 23016
ireg=IOdir
i2cwrite idata,iclock,iaddr,ireg,[0,0] 'Sets GP0.0-GP0.7 as OUTPUTS
pause 20
'Write to the 23016
ireg=GP_port
i2cwrite idata,iclock,iaddr,ireg,[0,0]
pause 20
ireg=LAT_port
i2cwrite idata,iclock,iaddr,ireg,[0,0]

And the ports are all still high, I agree with you, the chip did not accept the first command.

Did I understand your code?