Marlin uses D1 and D2 (Serial0) for the bluetooth module.
That sounds rather novel.
We have two possible situations here: either you can't read, or Marlin doesn't know what he/she/it is doing. It's starting to look like the former, since you have given two versions of what Marlin does, but one is ridiculous, and the other absurd, and that's not down to you. One thing you can be sure of is that anybody who uses software serial on a Mega probably has only a light grasp of what the hardware is about, and it's not the sort of thing to write home to your mother about.
If you are stuck with junk, you can probably retrieve the situation.
1 I understand Serial1,2,3 are out because some idiot has taken pins 14>19 for other purposes, but you might check to see if pins D0,D1 are vacant. If so they can be used for hardware serial
in the conventional manner. All you need do is just remember to disconnect bluetooth when the programme is being uploaded, and delete all reference to software serial, i.e. just use Serial.print: etc..
2. While using software serial on a Mega is pretty stupid, it isn't impossible. Any vacant digital pin, other than hardware serial, can be used for either Rx or Tx in software serial, and I don't think they have to be adjacent, though they usually are. Just re-write the communications part of the programme, declare the pins you are using and for what, and keep the baud rate down to 9600 or 19200. Be aware that software serial is never a good idea on any Arduino. It takes up resources, and slows it down.