The I/O pins on this chip only source 100µA.
You should read the data sheet on how they are 'quasi bi-directional'.
In a nutshell:
When you set them high, they are pulled up to VCC with a 100µA source.
This means they can 'easily' be pulled low externally.
To use them as input, you set them high and then read back the actual state.
When you drive them low, you connect them to ground.
So they can not source more than 100µA, but they may sink 20mA.
If you turn your LEDs around, connect your I/O pins to the cathodes of your LEDs, and the anodes to +5V, (and have those series resistors in there) they should blink.
By the way ... expN.write8(HIGH); I would guess that this function takes an 8 bit argument, 1 bit for each pin, and passing HIGH would only blink P0.