Xiao rp2040 i2c

Didn’t have any luck with the I2C libraries, so wrote my own and now works well with SCL & SDA inverted. Now communicating with 2 devices including a SSD1306 display. This works well, but incredibly slowly. I’ve taken out all delays, holding the pins high/low when serialising I2C data and it still works, a little bit faster. (still less than 100kB/s) Is using digitalWrite/pinMode limiting my I2C speed? Any way to increase the speed? Would making a PCB with the pins the right way around help?