In general, you need to put a DMA into your PSOC fabric and point it to the I2C and have it transfer the bytes.
You have a hill to climb, it won't be easy, but it is worth it.
Yes, you can modify the WriteBuf function to use uint16 type as argument for cnt. You might also need to modify the implementation of the function to support a higher number of bytes to be transmitted. It might also affect whatever protocol you are defining over I2C. For example, some requires to provide the size of the frame before transmitting the data.
I understand that it is useless just to change the API function to uint16 as it is.
We will consider a configuration using DMA.