I don't quite understand what you mean by reading 24mA with the INA168. The INA168 will produce a VOLTAGE which is related to the input current by the formula: Vout=Iin*Rs*Rload/5kΩ.
In your case, Rload is 49.9kΩ, so that gives you a gain of about 10. But the product of the sense resistor, Rs by the input current is 0.33Ω*19mA=6.27mV. (This is lower than the minimum recommended of 10mV.) With a gain of 10, the output shoud be 62.7mV.
Do you measure a voltage close to that?
Also, note that the INA168 has an offset of 0.2mV typical, 1mV max. That will introduce significant errors. Add to that the accuracy of the sense resistor and the INA168 itself, 2% max. Plus, with output voltage in the mV range, it is possible your voltmeter will introduce some errors, too.
In my opinion, this is the source of errors: too small a sense resistor. It produces a small sense voltage, which is affected by the offset and, moreover, results in a small output voltage, which in turn is affected by measurement errors.
So, to solve the problem, if the current range does not have to be much larger than 20mA, then select a larger sense resistor, so as to obtain a sense voltage of about 100mV at max. current. For instance, if you select a 50mA range, then the sense resistor should be Rs=100mV/50mA=2Ω.
With that, your actual sense voltage will be 2Ω*19mA=38mV. Multiplied by 10, you should get about 380mV, which can be measured more accurately. And you can increase the gain, too, in order to obtain a higher output, that can be measured more accurately. The load resistor can be trimmed, to adjust the output voltage range to suit your application. With the sense resistor I suggested, you will obtain about 1V for 50mA of current, so measurement becomes easier. You can also drop the gain to 5 and obtain 500mV for 50mA of input current. That would mean 190mV at 19mA, making measurement really easy.