Handling multiple tasks with single function

This would be a simple solution; I only implemented the part with ADDRx, you can do the SELx.

/*
  select pump and led ring
  In:
    address for multiplexer.
*/
void Select_PUMP(uint8_t address) {
  digitalWrite(ADDR0, (address & 0x01));
  digitalWrite(ADDR1, (address & 0x02) >> 1);
  digitalWrite(ADDR2, (address & 0x04) >> 2);
  digitalWrite(ADDR3, (address & 0x08) >> 3);

  // for you to do
  digitalWrite(SEL0, A0);
  digitalWrite(SEL1, A1);
  digitalWrite(SEL2, A2);
  digitalWrite(SEL3, A3);

  digitalWrite(LED_ACTIVE, HIGH);
}

I might not understand the code (or your requirements correctly), but why do you do the below

  Select_PUMP(0, 1, 0, 1);                                     //push the Distilled water PUMP5
  Select_PUMP(1, 0, 0, 1);                                     //Push the EC Std 1 PUMP9

Does your system indeed only need to activate the pump and it stays activated? Else I suspect this to be a bug.

Further, you are aware that you usually can put your led rings in series; so they only use one pin for all of them. In that case e.g. leds[0]..leds[15] are the first ring, leds[16]..leds[31] the second ring and so on.
Controlling them through a multiplexer might have side effects, not sure.

Because you have a number of items that relate to each other, you should consider using structs or classes in which you combine them. This could be a start (based on Rob Tillaart's library); I'm more a C programmer than a C++ programmer so I will use a struct.

#include <Wire.h>
#include <INA226.h>

#include <FastLED.h>

// How many leds in your strip?
// 16 rings of 16 pixels; I don't know for sure if your rings are 30 pixels
#define NUM_LEDS 256

#define DATA_PIN 8
#define CLOCK_PIN 13

// Define the array of leds
CRGB leds[NUM_LEDS];


// info for the tank
struct TANKINFO
{
  const uint8_t pumpNo;     // mux setting for pump
  const uint8_t sensorNo;   // sensor pin
  INA226 ina;               // ina
  uint16_t ledStart;        // the first led of the ring
  uint16_t ledEnd;          // the last led of the ring
};

TANKINFO tanks[] = 
{
  {1, 1, INA226(0x40), 0,  15},
  {2, 2, INA226(0x41), 16, 31},
  // for you to complete
};



void setup()
{

  FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);

  for (uint8_t tankCnt=0; tankCnt < sizeof(tanks) / sizeof(tanks[0]); tankCnt++)
  {
    // start up ina
    tanks[tankCnt].ina.begin();
    // set all leds to orange
    for (uint16_t ledCnt = tanks[tankCnt].ledStart; ledCnt < tanks[tankCnt].ledEnd; ledCnt++)
    {
      leds[ledCnt] = CRGB::Orange;
    }
  }
  FastLED.show();
}

void loop()
{
  // loop through tanks array and do what needs to be done
}

To do multitasking, you will have to switch to a millis() based approach; see e.g. Using millis() for timing. A beginners guide and the blink-without-delay example.
You can e.g. add the interval and the 'next' time of the blink as fields in the struct and when looping through the tanks array use those values to blink if necessary. Same for the readings of the inas.

Notes:

  1. This is only for demonstration purposes; it e.g. only has two tanks
  2. Not forcing you to use Rob Tillaarts library, it's just that that is what I had.