and I'm hitting the max amount of data REST::Client will accept.
What do you mean? Does the module REST::Client impose a limit or does the server impose a limit?
What I understand is that either the server has paging into their API, so that you can do something like $client->GET('http://example.com/dir/file.xml?page=10&num_pages=1'); in a loop to get all the pages. OR the server has no paging to offer and you get all the data at once. In which case REST::Client has the option to save it to a file if handling it in Perl, as a variable, will cause you problems. The file can then easily be paged in the usual ways.
LWP::UserAgent allows you to provide your own callback functions to be called before and after each phase of handling the requests. But I can't see how this can be useful in your case. What I thought would be possible is to ask user-agent to give you a data-socket and do what you want with it but don't know how or if it makes sense.
Edit: How to make REST::Client save to a file from its documentation:
# request responses can be written directly to a file
$client->setContentFile( "FileName" );
# or call back method
$client->setContentFile( \&callback_method );