High side current sensing with LM358
The LM358 can't get to the negative rail perfectly. There is a typical 50uA current sink in the output circuit that allows it to get close, particularly when it is dealing with a resistance to ground as a load or a very light load to >0V. 



You, on the other hand, have a 20K resistance (R19+R20) to ~8.5V (R23/R24) which is 425uA, which overpowers the current sink. Given that, you're going to get more than 1 diode drop at the output. If you bias it upward so that 0A = 1V you should be able to get a linear output.