Recovery of messages for the stores occurs over TCP so you should not be losing messages due to buffer size.
Recovery of large numbers of messages requires careful tuning of a number of configuration options. One of the issues that you will run into when trying to recovery lots of data quickly is the "delivery_control_total_map_entries" threshold. Which is not to say that you should just increase that configuration option.
The option controls how many UM datagrams will be buffered by a context. When the number of datagrams exceeds that threshold, the context will immediately deliver any loss records for the transport stream which received the last incoming datagram.
This threshold is readily exceeded when trying to recover large numbers of messages simultaneously from multiple stores.
The solution will involve some analysis of your particular recovery needs with tuning of the late-join configuration options to appropriately throttle the recovery rate of messages.
You should raise a support request for more detailed assistance.