This should help to explain at least the difference between the pulse counter and pulse meter: Pulse_counter vs pulse_meter - ESPHome - Home Assistant Community (home-assistant.io). In short, you probably need only one of them. Since the template sensor uses the pulse counter value (and neither of the two pulse meters below), you can probably just keep that one.
This looks like an unintended duplication, because these have the same name:
- platform: pulse_meter
pin: GPIO4
name: "Water Pulse Meter"
unit_of_measurement: gallons/min
icon: mdi:water
total:
name: "Water Total"
unit_of_measurement: "gallons"
- platform: pulse_meter
pin: GPIO4
name: "Water Pulse Meter"
unit_of_measurement: "gallons/min"
icon: "mdi:water"
total:
name: "Water Meter Total"
unit_of_measurement: "ft³"
id: water_meter_total
accuracy_decimals: 3
device_class: water
state_class: total_increasing
filters:
- multiply: 0.748052
You should probably remove the first, since the second is the more complete definition (that is if you want to use this at all). The effect of the current situation is that you are probably seeing both sensor.water_pulse_meter
and sensor.water_pulse_meter_2
on the HA side.