The library expects a packet to never exceed one ethernet frame. This is not a limitation in ADS it self.
All packets are read to this variable:
dc->msgIn
Which is a stack variable of 1524 bytes.
This variable should instead be dynamically allocated heap according to the length specified in the ads read/write command.