if youre talking about the voltage spikes, I wanted to know the best way to protect the output of the supply against exsessive voltages.
All a matter of what you intend to do -- by switching it off, you're literally commanding current to zero. Well, an inductor can't go to zero instantly, the rate of change is given by dI/dt = V/L. The voltage
must rise (or fall, whatever the direction of initial current was) in order for current to return to zero.
If it's acceptable that the voltage be clamped to the supply rails, then, do that. Let the body diodes do their job, don't put a diode in series with it, that'll blow something up.
You could allow the output voltage to swing outside the rails in this specific case; indeed, this was done in CRT vertical deflection amps, they were essentially audio amps with really special controls (since they just need handle a current ramp waveform) and a diode in the output to allow flyback (retrace). In this case however, that energy
still needs to go somewhere, and you can't simply disconnect the control circuit, it needs to continue tracking. What would happen is, the opposite side transistor conducts (at great expense in power dissipation: it's dropping not just the flyback voltage, but half the supply voltage on top of it!). The diode allows the voltage to rise outside the rails in this particular case, and prevents backfeeding in case of excessively high load voltages (say, accidentally connecting a 48V battery when the rails are +/-30V), but the downside is all that extra power dissipation in the opposing transistor.
Now, power dissipation may be high under such conditions, but it may not last long, that's the key. Transitors can handle some amount of energy over time, just so long as junction temperature doesn't exceed limits. Using this thing actually as a vertical deflection amp, maybe not a great idea, that's a lot of reactive power, i.e. driving a highly inductive load with substantial AC. But just on/off into stray wiring inductance, or even a motor's winding inductance, not at all an impossible challenge. The point is to understand the scope of the problem, and implement controls to support it.
So, it's not out-and-out wrong to put diodes there (but, just one is obviously inconsistent), but it needs to be managed properly. Disconnecting drive, means the flyback voltage rises until whatever limit it accidentally hits -- avalanche breakdown of the transistor or diode. The diode probably doesn't have much avalanche energy rating, that should definitely be avoided. The transistor likely has generous avalanche capacity: but it must also be avoided under repetitive duty. MOSFET avalanche causes cumulative damage, and eventually will destroy the device. They publish single-pulse ratings, under the consideration that it is exactly that, a one-time event. It might fail after two, or a dozen, or a hundred, no idea, but it's not going to last forever at that level. Smaller transients cause less damage, but it's still cumulative as far as I know, and using avalanche breakdown as a design feature, is putting a limited lifetime on the product.
So, the way to handle that, is to:
- Clamp it to the supply, assuming that
1. this is enough voltage to meet whatever inductance and dI/dt load spec you require;
2. the supply either has positive average load so it doesn't ride up from the injected current, or has something to dissipate the excess in (e.g. a shunt regulator or TVS diodes; or maybe a battery or other large reservoir; or in the extreme: perhaps a grid-tie inverter, so the excess received power can be dumped into the grid entirely -- a very efficient option for high power SMPS loads!); or
- Clamp it at the output, using a TVS diode perhaps; or
- Clamp it at the output, using the opposite side transistor, conducting current in the normal way (through the channel).
Yes, you can dissipate precisely the same voltage, current, power and energy, through normal (channel) current flow, or as avalanche; and the one is reliable, while the other accumulates damage.
Well, you still have the possible problem of thermal cycling, that may be a good reason to use lower peak power levels or redundant devices, when targetting high reliability. But until such a failure occurs, the semiconductor itself won't fail due to normal channel current flow.
Also, in terms of abnormal current flows, body diode current -- it's fine (I_SD). The voltage drop isn't enough to cause the problems that avalanche causes. So, just to fill out all two quadrants of device operation; this one is okay, don't worry about it.

Also also, the power and energy handling assumes operation within the SOA, including down to DC. If this isn't specified -- keep shopping. Old transistors tend to be surprisingly good at this (like the hulking old IRFP here), and many of them, even if they leave off the DC SOA curve, they may still operate down there. Or maybe they don't because of a die shrink or some other process change over the years, who knows, but maybe it's worth testing to see.
Amazingly enough, newer transistors (Superjunction), despite having higher power density than ever (smallest die area for Vds(max) * Ids(max)), often come with DC SOA.
And, SOA limitations are exacerbated by high voltages (more power density per ampere), so this is more of an issue for high voltage parts. You rarely see BJTs capable of nominal power dissipation above 200V (which is coincidentally about where product lines end, for linear amplifier BJTs); MOSFETs you quite often can find, however. (We aren't even talking enough voltage to need Superjunction type MOSFETs: under 200V or so, they're just ordinary -- albeit still very highly optimized -- VDMOS types.)
And that's another thing, BJTs may prove more friendly here, because the supply voltage is low, the voltage offset (Vbe) is much lower, and the gain is quite high (namely transconductance, dI_c / dV_be). hFE is the downside, you may need a relatively strong gain stage to drive them (10s of mA I_b). You're basically making an audio amp and wiring it for DC coupled output, and adjustable up/down current limits. The, at least the basic skeleton of that, is an extremely well studied subject.
Please forgive my inexperience but what makes it a class C amp instead of an AB amp.
With the diodes, I found a sort of 'dead zone' in the voltage control (if i remember correctly) because of the voltage drop.
Thank you very much for your help, Ill have a long and hard think about the CC/CV behaviour and the project as a whole. I'm sure it wont be an easy project but a challenge is always fun. 
Class means:
As the setpoint voltage varies, and assuming a resistive load:
Over most of the half-cycle, one transistor conducts, then {both|partially|neither}, then the other during the other half-cycle.
Class A is both 100% of the time. Both transistors remain on (Ic or Id > 0). Conduction is 100%.
Class AB: conduction between 50-100% of the time. For small signals of course, operation is fully class A, but as signal level increases, the devices approach and pass into cutoff during part of the cycle.
Class B: conduction about 50% of the time.
Class C: conduction less than 50% of the time.
Class B isn't a great definition, because no linear device turns on and off suddenly; semiconductors in particular have an exponential cutoff. A more specific definition might be used, like quiescent current some small fraction of peak current, like, 0.1% or something I don't know?
Anyway, this is class C, because for gate voltages between +/- Vgs(th), drain current is zero -- both are off, thus conduction is below 50%. It's not much below, maybe that's a dead-band of 4V out of a total swing of 50V or something -- but it is definitely there.
(A more typically "class C" amplifier might have a conduction angle of 25-40%, giving good efficiency (60-80%?) near maximum power output, but very high distortion -- when that distortion can be filtered off, it's quite effective. Hence the use in RF amplifiers, particularly for FM, or AM with "plate modulation".)
Anyway anyway, the consequence here is the dead zone that the control circuit has to wrangle, destroying small-signal and AC performance. The cure is to insert a voltage between gates, that is somehow exactly the sum of both Vgs(th)'s, and therefore biases the transistors into conduction a specified and stable amount. Trouble is, Vgs(th) has a negative tempco, so as the transistors heat up, they explode... this is approximately half the science of audio amp design, getting stable biasing through clever circuit and thermal design.
And BJTs are, I think, more straightforward on this, with Vbe also having a negative tempco but a rather well defined one; -2mV/C isn't it? The usual strategy being, put a stack of diodes inbetween, pass a bias current through them, and stick 'em on the same heatsink as the outputs so their Vf tracks Vbe. There's a bit more to it than that, but that's the basic starting point.
Tim