You're using the wrong op amp and the wrong resistors. Otherwise, no problem.
The LM358 has significant input offset voltages and currents. The fact that you are using different resistor values for the inverting and non-inverting paths means that offset currents come into play more than they should. Worse, your carefully-calculated ratios mean nothing in the face of possible resistor variations within the tolerance values.
Running a simulation with 5 mV at V2 and 10 mV at V1 (and without a significant common-mode voltage your configuration makes no sense), and varying the resistor values over their full tolerance gives an output of -54 to -74 mV, with -63.8 mV at nominal values. Note that at nominal resistor values and zero differential voltage the "nominal" offsets built into the 358 model gave an output of 23 mV. 23 plus 64 gives your nominal 87 mV.
Oh, and I forgot, you're also using a capacitor where you shouldn't. At DC, the capacitor blocks all current flow to R9, so the input is essentially floating. This configuration is used specifically as a high-pass filter, and is intended to block any DC component of the input and is ordinarily used with audio circuits. It is entirely inappropriate for looking at temperatures.
When not using the cap, you should be getting something like the correct result from your second stage. That you have about a 50% error suggests that either R9 or R8 is entirely the wrong value. As a distant second possiblity, the op amp may be bad.