As explained by user287001, when you reverse the polarity of the motor, it acts as a generator, but its polarity is opposite to the power supply voltage, so it will draw a lot more current than even its starting current. You can think of this "generator" as connecting a battery to your power supply, but with the wrong polarity.
On the left, the FET is ON, and the motor is powered (I drew it as a voltage source with internal resistance and inductance). Current flows according to the red arrows.
In the second schematic, the relay just reversed the motor polarity, so the voltage source polarity and inductor polarity are also inverted on the schematic. Due to the motor inductance, which has been flipped around, current reverses. This isn't a problem, if the FET is ON it'll go through the FET, otherwise it'll go through the body diode. This lasts a very short time.
Schematic 3: Once the inductance is discharged, the motor is still a generator, but its polarity is now opposite to the power supply. Therefore, current will be much larger than the motor starting current. When a motor acts as generator, the output voltage is roughly proportional to rpm, so the faster it goes, the more trouble you'll have when reversing polarity. In addition, the motor gets close to double the usual voltage and current, so if the power supply doesn't wimp out, it'll deliver double the torque... and the torque will change sign very fast... which means some fasteners designed for the nominal torque may just give up. Basically, reversing polarity on a motor running at full rpm can have some pretty spectacular effects, like the machine jumping off the floor and throwing some spare parts around.
Schematic 4: if you set PWM to zero (turning off the MOSFET) however, the polarity of the motor-generator's output voltage is such that it will be shorted by the diode.
So, you can't switch polarity and apply full power on a dime. You could reverse polarity and set PWM to zero at the same time, then wait for a while until the energy stored in the motor's rotational inertia is dissipated in both the diode and the motor's winding resistance. Make sure the diode can withstand this, otherwise it will fry. Then, wait for the motor to slow down. Once it has slowed down enough, you can then ramp up the PWM to start it in the other direction. The diode provides a convenient way to short the motor to slow it down faster, but it will do so only if the relay reverses the polarity and the FET is OFF. If the relay is not reversed and the FET is OFF, the motor will simply coast. So depending on the relay position, you either get braking or coasting.
An option would be to use a MOSFET driver with an integrated RS latch and comparator, like MCP1630, or other similar scheme. Basically, a current sense resistor in the MOSFET source monitors motor current, and turns off the FET when it exceeds a set value, which shortens the PWM cycle and ensures current never goes above the maximum that your power supply or battery can tolerate.
Otherwise you'll have to use fixed delays in your code, or monitor the motor current in some way, to ensure enough delay between reversing the polarity and turning the MOSFET ON again.
So if you want to be able to reverse direction quickly with your ROV, it all depends on the inertia of the motors and propellers. More inertia means you'll have to wait for longer.
Since this is an underwater ROV, the water itself could load the motors enough to slow them down, which would allow quicker change of polarity. But the opposite could also be true, if the ROV is advancing and the motors are powered down, its speed through the water may force the propellers to turn, and then your motor may not slow down as quickly as you want. I have no idea which of the two will win. Testing on a bench in air won't answer that question either.
So I guess you'd need to run a test in water: go full speed, revrese the relay and set PWM to zero, shorting the motors with the diodes, and time how long it takes for them to go from full RPM to something easier to turn around, like 25% rpm. See if that delay is okay, if it's not too long to feel sluggish to the operator.
Another option would be to use a H-bridge. In this case, the motor's inductance is exploited to turn the H-bridge into a boost converter when it acts as a generator during braking, which recovers the energy into your battery. However, this needs a smart control algo to adjust the PWM. Not rocket science, but not 2 lines of code either.
I guess that's why variable pitch propellers are popular...