MAX31855 giving varying temperature measurements

I am using MAX31855 K-type thermocouple to measure temperature. When combined with other sensors (Dissolved Oxygen, pH, conductivity, light intensity) and taking measurements, the temperature sensor gives varying readings as below:
C = 22.75
C = 19.00
C = 22.75
C = 22.75
C = 21.25
DO:0.00
21.25 807 0.00 0.70 14.000 -21.25
C = 22.75
C = 22.75
C = 22.75
C = 22.75
C = 22.75
DO:0.00
22.75 805 0.00 0.91 14.000 -22.75
C = 22.75
C = 22.75
C = 22.75
C = 19.00
C = 18.75

However, when I do temperature readings alone with the sample program of serialthermocouple, there is no such issue of variation of temperature readings. The sample program for serialthemocouple is as below:

/*************************************************** 
  This is an example for the Adafruit Thermocouple Sensor w/MAX31855K
 ****************************************************/

#include <SPI.h>
#include "Adafruit_MAX31855.h"

// Default connection is using software SPI, but comment and uncomment one of
// the two examples below to switch between software SPI and hardware SPI:

// Example creating a thermocouple instance with software SPI on any three
// digital IO pins.
#define MAXDO   3
#define MAXCS   4
#define MAXCLK  5

// initialize the Thermocouple
Adafruit_MAX31855 thermocouple(MAXCLK, MAXCS, MAXDO);

// Example creating a thermocouple instance with hardware SPI
// on a given CS pin.
//#define MAXCS   10
//Adafruit_MAX31855 thermocouple(MAXCS);

void setup() {
  Serial.begin(9600);
 
  while (!Serial) delay(1); // wait for Serial on Leonardo/Zero, etc

  Serial.println("MAX31855 test");
  // wait for MAX chip to stabilize
  delay(500);
}

void loop() {
  // basic readout test, just print the current temp
   Serial.print("Internal Temp = ");
   Serial.println(thermocouple.readInternal());

   double c = thermocouple.readCelsius();
   if (isnan(c)) {
     Serial.println("Something wrong with thermocouple!");
   } else {
     Serial.print("C = "); 
     Serial.println(c);
   }
   //Serial.print("F = ");
   //Serial.println(thermocouple.readFarenheit());
 
   delay(1000);
}

The program with all sensors combined is attached due to size. Please advise what should i do to deal with this variation in measurements. Thanks

testing_all.ino (11.5 KB)