Water level sensor with NodeMCU and just GPIO pins - Need Help

I have nodemcu onboarded to ESPhome in homeassistant. I connected 4 GPIO pins at 4 different levels of depth in my overhead water tank of 120 cm height with GND pin being at the lowest level. All the GPIO pins are pulled high and inverted in the sensor when connected with GND it should show the sensor on.

My issue is that when I connect all GPIO pins & GND , all the sensors work perfectly fine.
But when I install my setup in the overhead tank , 75% & 25% work fine but as soon as I connect 50% pin GPIO13 / D7 in my setup the 25% shows OFF in my Homeassistant. dashboard .As soon as I remove 50% pin ( D7 ) 25% comes back online showing water level. I spent hours trying to change pins and choosing different pins but it just doesn’t work. While it works on my desk perfectly fine connecting all GPIO to GND together it shows all levels of tank as full.

When 75% D2, 50% D7 and 25% D4 are connected while tank is full over 75% , 25% pin goes off. I remove 50% pin D7 and 25% is back. I have changed pins for 50% with no luck.

Powering NodeMCU with 5Volts

Configuration Yaml

binary_sensor:
  - platform: gpio
    pin:
      number: 5 #D1
      mode: INPUT_PULLUP
      inverted: true
    name: "Full"
    device_class: moisture
    filters:
      - delayed_on_off: 2000ms
  - platform: gpio
    pin:
      number: 4 #D2
      mode: INPUT_PULLUP
      inverted: true
    name: "75%"
    device_class: moisture
    filters:
      - delayed_on_off: 2000ms
  - platform: gpio
    pin:
      number: 13 #D7
      mode: INPUT_PULLUP
      inverted: true
    name: "50%"
    device_class: moisture
    filters:
      - delayed_on_off: 2000ms
  - platform: gpio
    pin:
      number: 14 #D4
      mode: INPUT_PULLUP
      inverted: true
    name: "25%"
    device_class: moisture
    filters:
      - delayed_on_off: 2000ms