First the simple part. Temperatures always differ from external measurements. This is an error prone process. It depends on the place you measure, the contact of sensor to heat block, resistance error of sensor, measurement error of the Arduino AVR and the 4,7k resistor. And the most important part is that in high temp. ranges a small resistance change has a bigger influence. So with all these error sources, we can only expect to get a close temperature and we are happy that at least the result are stable. So you have to find what temperatures work best with your filament and extruder and this is one of the main reasons you always see temperature ranges and not a best temperature for printing.
The second part does not sound logical to me. When you set a temperature it is send to the firmware and nothing is done after that. So switching extruder send only T1 or T0 to firmware, but no new temperatures. So I can not see why that changes target temperature. You can also see at the bottom status bar, where you see what the firmware thinks the target temperature is. And at last you can open log and display commands send. Perhaps that can help you to discover what is going on. I tried this with latest 0.92 on my dual extruder and it worked as expected. So please check what command send causes what returned target temperature. As you describe it, firmware changes target temperature on switch, whcih should not happen.