I2CWRITE SDA,SCL,$20,[$05,%10111000]

I had the same setup for Arduino which worked fine.
Arduino use a 7 bit i2c address pbp uses a 8 bit address.
you make no mention of how you have AO,A1,A2 on the expander connected

pbp i2c address = (% 0 1 0 0 A2 A1 A0 )<<1 for a mcp23017