Why would using full buffers cause problems?
Technically this 32 byte limit is really only limited by software.
A work around would simply use straight I2C which could theoretically be infinite byte sending/receiving or utilizing PMBus with a limitation of 255 bytes. The documentation for Python's SMBus2 library doesn't really explicitly say why 32 bytes is a hard limit but if I had to guess, it likely has to do with kernel limitations. Frankly, I don't know a lot about kernel's to talk about why that could be an issue.
I also do know that SMBus can timeout at higher physical layers, whereas I2C does not.