As I wrote above, after loading the first version of your program (size 140 bytes) and reading the "eeprom" area, my board stopped responding to requests from the main board.
I have a second board, it responds to the request, but gives a temperature error. The problem is not in the board, but in the MCU: the MCU ADC pins on both boards have the same voltage. Moreover, I swapped the microcontrollers, and the temperature measurement problem moved from one board to another. Maybe this is a hardware problem with the microcontroller, maybe its internal ADC is broken, or maybe it is software. I managed to order a new MCU, I received it a few days ago, installed it and flashed it with M16C-Flasher, and the board worked fine. I was confused. Since the new MCU is completely empty, including the "eeprom" area, and it worked, I assume that nothing is written to the "eeprom" area, and the data from this area is not used. Am I right? However, I do not exclude that the MCU determines that the "eeprom" area is clean and initializes it with some data. Now, with the help of your program, I have verified that in the MCU that does not communicate with the main board, the EEPROM area is clean, as in the new MCU (and it communicates with the main board), it is not initialized with any data.
So, a new question arose: what could have changed in the MCU after loading your first version of the program, which memory areas could have been changed and how to flash a full copy of one MCU to another? Before loading your latest version of the program into the "working" MCU, I can read the dumps of both MCUs, will this be informative for you, tru?
PS you need to add to github what you did, thanks for your work!