1. U13D is a diferential amplifier and U13C is comparator, at least this was the intention. Can you give an example to combine this stage to one?
The first example below shows the current sense resistor is on the input side but it could be on the emitter side. The second example which is closer to your design shows the current sense resistor on the output side.
For a programmable output like you want, the control voltage referenced to ground is used to sink a current out of the non-sense resistor (the parallel value of R65 and R66 in the second example) which is moved to the input side of the current sense resistor so reversed compared to the second example. This adds another operational amplifier for the voltage to current conversion but it is outside the control loop. The voltage across the second resistor follows the output and operational amplifier compares this voltage to the voltage across the current sense resistor. It is like the common high side current sense amplifier but in reverse since it controls the voltage across the current sense resistor instead of reporting it.
This does not quite completely solve the current control loop problem because when the output is at very low voltages, the voltage controlled current sink which creates the high side voltage to compare to the voltage across the current sense resistor will run out of voltage compliance if it only sinks current to ground. But if it is acceptable that the maximum current is not available below 2 volts or so then nothing more needs to be done.
2,3. I did tried to make linear but seems to fail, what do you propose to in linear region U16?
The problem is that T1 is very non-linear as the signal levels change. The large capacitance of U16 makes things even more difficult.
What I would probably do is reverse the logic of the or-ing diode D1 and replace T1, R21, R39, and R40 with something like a diamond buffer which is just a simple class-ab emitter follower.