Sorry, forgot to mention in previous post. This is an H bridge. The TVS diodes clamp each mosfet block from exceeding it's Vds but also shunt the kickback onto VCC / GND where other another TVS across VCC/GND clamps that to a safe voltage.
Doesn't change anything; in a H bridge, there always is path for the motor winding current through the MOSFETs (if driven ON), or their body diodes (when driven OFF). Energy stored in the inductance of the motor is freewheeled by these diodes, it just happens for you, no need to do anything.
Any "kickback" is from layout parasitics, not from the motor! This is why we need to see the layout to assess the problem.
Between Vcc and GND, a TVS may be advisable because the stored energy goes there, through the diodes. Though, I have just always used enough bus capacitance to do the same. As you know the maximum motor current, and the winding inductance (if not rated, you can measure it), you can calculate stored energy per E = 1/2 * L * I^2. Then given the bus capacitance, you can calculate voltage rise by E = 1/2 * C * U^2, where U is the rise in voltage under worst case (disconnection of input battery/etc. at the moment of maximum motor current).
Forget the concept of motor causing voltage kickbacks over the switches and you having to clamp them, it's totally wrong. Something else is going on, e.g. bad layout.
Then there are two more relevant items:
1) regen due to driving the MOSFETs actively - even at low RPMs, the thing can generate high voltages on the Vsupply, if there is nothing to consume it. Solution: measure input voltage and stop driving MOSFETs instantly when overvolting
2) inadvert regen due to exceeding maximum design RPM. This happens even if the thing is powered down. A permanent magnet motor generates a voltage (back-EMF) linearly dependent on the RPM. Say if the motor runs at 3000 RPM at 12V with no load, this means it will also produce 12V when rotated externally at 3000RPM. If you apply external force to make it run at 6000 RPM, then it will produce 24V. Not only the MOSFETs, but everything connected to Vsupply sees this voltage (minus diode drops), as it is rectified by the body diodes.
Inertia causes such "external" rotation, too, but obviously if your circuit made the motor run at X RPM, then if you only have inertia and no external forces, the RPM will ramp down and generated voltage can't exceed what you already had in your Vsupply.
There is no easy solution for the latter; such external mechanical force can be so energetic that any reasonable bank of TVS won't cut it; you need to design an active clamping circuit, say with beefy resistor bank + TL431 or comparator driving it. Or, you can just overdimension all the relevant parts to, say, 30V and then specify "never run at over 5000rpm". Usually motor controllers are not designed to take whatever unlimited external rotation.
In any case, the main issue i have is not knowing what the peak current through the TVS is.
If choosing to not use DC link capacitace for the "input disconnect" worst case and letting TVS to handle most of it, peak current through TVS is simply the maximum motor current; current decays linearly by the slope dI/dt = V/L.
For the TVSes over the MOSFETs, energy should be small because you are just clamping the parasitics of the layout, maybe in a few tens of nH, not hundreds unless colossally bad layout. Peak current is still the motor current, but pulse is very short, like 100ns or so. Also take a look at RC snubbers, it might be better fit, especially if your application is 0% vs. 100% duty cycle one as I understood from some other comments (so power dissipation in snubber is not a problem). But first and foremost, tight layout and don't forget bus capacitance.