I will slow down the baud rate and see if this helps.
Only is you slow it down so far that the delay()s are shorter than the time needed to transmit a buffer full of data.
On that note; what is the method to prevent such an overflow without having to play with baud rate?
Handshaking. The receiver (the Arduino) sends a message to the sender (the PC) that says "Whew, done with that last batch of data; send me some more".
Of course, it doesn't have to be quite that verbose...
I will be using 1-wire comms to transmit the CSV to the Mega
From? You'll need at least two (ground). A third (to allow two way communication) would be even better.
The length of the 2 wires used to communicate may vary and I don't want to have to adjust the baud rate to prevent overflow every time something changes on the wiring.
I don't think you have accurate enough equipment to measure the transmission time of serial data down a short wire vs. a long wire.
Wire length has virtually nothing to do with your issue.