why is my differential amps error related to load impedence?
Your differential amplifier is seeing a change in common-mode input of 9 volts (10 ohms to 100 ohms at 0.1A). 

You are seeing a change at the output of only 10mV. A single 100K 1% resistor mismatched by 1% will cause a 90mV error. Do you see your design problem? You have almost no signal and a huge common mode voltage change- in fact it's much worse than if the output voltage was fixed. 

You can go with 0.1% resistors or a network (or trim the CMRR with a trimpot) and stay with this topology, but really this is not the best way to measure current with a high-side shunt. It's too sensitive to component tolerances so it requires excessively precise and expensive parts for mediocre results. We should try to design circuits that use cheap and widely available parts to provide superior results. 

In this case, it's better to use a transistor and amplifier to level-shift some current balancing the voltage across the shunt, which is really another question so I'll sin() off.