Send long char array (7000) via hardware serial

Is it possible to get rid of this, or is it a fundamental limitation of the Arduino?

It's more likely that it's a fundamental limitation of your code. Which you may have noticed that you haven't posted.