Hello guys

I should limit the output current of an opamp, which is buffered by an LT1010.
There are a lot of current limiting circuits out there, but i don't know how to implement them in my design, so i tried to develop my own current limiting circuit.
This circuit should limit the current between .1uA to several mA. This large current range is given by the current sense method, changing some resistors when needed.
But how can i sense the load's current? Considering that the opamp can drive very resistive loads, even GOhm, i think that i can't use a high-side current measuring technique since i think that the opamp's input can be unbalanced considering that one input sees a low impedance and the other can see a variable impedance. Also a low-side current measuring technique is not feasible because i'm already using a transimpedance amplifier to precisely measure the load's current. I could use this current(voltage) information, but this circuit is very slow (switching relays, ADCs and so on) and it can be blind to some "fast" current variations.
I'm a student,
so expect some stupid and hilarious stuff 
.
My idea is to use a Wilson current mirror in the opamp's feedback loop. I could use then the mirrored current in a faster and less precise transimpedance amplifier. Its output is then compared to a reference voltage.
To limit the current i could use a Depletion mode NMOS when the source is positive and an Enanched mode PMOS when it's negative, which both are in series with the load.
What do you think about this madness? Can i improve it in some way? There is a better method to limit the circuit in this circuit?

I tried this circuit in a breadboard and it works is the same way it does in the simulations. There is though a small noise in X4's output (in the breadboard there isn't that buffer). I managed to suppress it by a bit with a .1uF capacitor between the opamp's output and its inverting input, but it's still present.
Here some pictures (sorry for the bad quality). I'm using a 10x probe, so the actual values in the screen must be multiplied by 10.
Do you have any suggestions?

