You need to clarify your requirements. Do you understand what it means to stay within 2µA of 10mA? This is hard, because you aren't building an ordinary reference. This is specified to be extraordinarily accurate.
Your requirements cannot be met with any 5% tolerance zener diode such as the 1N5225. 5% tolerance is 500 microamperes! You should consider a precision voltage reference. Remember your total error needs to be 0.02%
It's good that you attempted to only have one resistor (R1) contributing to errors, but it needs to be carefully specified precision component. Even 1% would contribute 100µA error which is not good enough. As noted by Nigel, R1 is giving you misleading results. The circuit should work without it.
Your TL072 cannot handle an input attached to 30V. Its supply is only 18V! Study "common mode range" for more than I can write here. Short answer is that +Vcc needs to be greater than +Vdd. (-Vcc doesn't need to be -18V; you can attach to 0V)
But tje TL072 isn't good enough. Although its input current is low enough, an offset voltage of 5mV reflects 5µA error into the 1K R2. You're moving in the right direction, though.
The open collector architecture is good at tolerances of maybe 1%, but it's totally unsuitable for your 0.02% tolerance. Maybe a P-channel FET would do the job.
Summary: Precision reference, precision resistor(s), reduce Vdd, increase +Vcc, make (-Vcc)=0, reduce value of R2, and PFET as Q1.