Apologies, the comments and PR referred to below target the CubeCell AB02/s LoRaWan runtime only. There are a couple of minor changes that were not propagated to all regions, thus might be an issue for NON US915 regions.
RE: get current data rate
A set data rate API was recently introduced, but not a get API.
LoRaWAN.setDataRateForNoADR(rate);
I believe there are some issues with setting data rate dynamically, especially if you are subject to Adaptive Data Rate.
There is a pull request pending that attempts to resolve some of this (set/get of data rate) along with a couple of other error path issues. At this point I don’t know that the PR code is implemented totally correctly or within the Heltec guidelines. ( My standard disclaimer of course)
You are welcome to give it a shot, but again it has not been approved nor condoned by Heltec.
Pull Request #142
As far as splitting the packet,I thought I heard from a webinar that SemTech “might” have some split/reassemble suggested code in a repo somewhere but did not take note of it. When the video recording is released in a few days I’ll comment back here if there is something of interest.
(edit) They might have been referring to over the air update https://github.com/ARMmbed/mbed-lorawan-update-client
Which is way over kill for what you need.