Looking good. The custom button card is pretty powerful. Do your zone cards include the switch? i.e. click it to turn the zones on and off?
Re the state, I had the exact same problem, but after looking at it for a bit, it was as simple as removing the retain line. My code is below if it helps.
climate:
- platform: mqtt
name: Brivis Thermostat (MQTT)
modes:
- "off"
- "heat"
- "cool"
- "fan_only"
fan_modes:
- "high"
- "medium"
- "low"
temperature_command_topic: "rinnai/hvac/temperature/set"
temperature_state_topic: "rinnai/hvac/temperature/get"
fan_mode_command_topic: "rinnai/hvac/fan_mode/set"
fan_mode_state_topic: "rinnai/hvac/fan_mode/get"
mode_command_topic: "rinnai/hvac/mode/set"
mode_state_topic: "rinnai/hvac/mode/get"
precision: 1
#retain: true