Nokia510 display issue

I've been working on a little project where I'm receiving data coming from a sender using a pair of NFR24L01's and a couple or Pro mini's
It's all working perfectly and displaying the data but I've got one little issue I can't seem to stop happening or get to the bottom of it.
The display is laid out like this when there is data coming in.

Line 1: +  4.56 // This is the raw value
Line 2: TX 85 % // Show's the TX battery level
Line 3: Signal  Good //set to true
Line 4:connected // set to 10

The display is laid out like this when there is no data coming in.

Line 1: *  0.00 // This is the raw value
Line 2: TX 0 % // Show's the TX battery level
Line 3: Signal lost // False 
Line 4: Disconnected // set to 20

What's happening is that Line 4 of the display is showing the correct text depending on if there is data or no data coming in but it seem's to be flickering really fast(on the correct message) all the text remains steady and does not flicker like the Line 4 does.

Here is the code just in case I've missed something or not got it right if someone could take a peek. There is some lines commented out from what I've tried so far, But nothing seems to stop it flickering

#include <RF24Network.h>
#include <RF24.h>
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include <TimedAction.h>
#define button 8
#define led 13
//Set Raido up
RF24 radio(9, 10);              // nRF24L01 (CE,CSN)TEST
RF24Network network(radio);      // Include the radio in the network
const uint16_t this_node = 01;   // Address of our node in Octal format ( 04,031, etc)node00
const uint16_t master00 = 00;    // Address of the other node in Octal format
const byte numChars = 9; //This is amount of data coming in
//defines
#define ECHO_TO_SERIAL 1 //change to zero = no serial output
#define Error_led   A2     // Pin 5, Connects to LED
unsigned long NO_Data_in = 0; // no data in time
const long interval = 1000;           // interval at which to blink (milliseconds)
int buttonState;
int ledstate = HIGH;
int buttoncurrent;
int newSwitchState;
int buttonprevious = LOW;
int contrastValue = 60; // Default Contrast Value
const long TX_interval = 250;  //Error flag timer for not recieving from the tx
unsigned long TX_previousMillis = 0; // stores the last mills
float batteryPercentage = 75.0;
Adafruit_PCD8544 display = Adafruit_PCD8544(3, 4, 5, 6, 7);

//##########################
//# SET UP STRUCT FOR DATA #
//##########################
typedef struct test_struct {
  int PRO3600_Disconnected;
  boolean No_data;
  float batteryPercentage;
  char receivedChars[numChars];   // an array to store the received data
} test_struct;

//Create a struct_message called myData
test_struct myData;
//Print data to serail port
void printRecord(Print* pr, char sep = ',') {
  pr->print(myData.receivedChars[0]); // Print btye 0
  // pr->print(sep);
  pr->print(myData.receivedChars[1]); // Print btye 1
  //  pr->print(sep);
  pr->print(myData.receivedChars[2] ); // Print btye 2
  // pr->print(sep);
  pr->print(myData.receivedChars[3]); // Print btye 3
  //  pr->print(sep);
  pr->print(myData.receivedChars[4]); // Print btye 4
  //  pr->print(sep);
  pr->print(myData.receivedChars[5]); // Print btye 5
  // pr->print(sep);
  pr->print(myData.receivedChars[6] ); // Print btye 6
  // pr->print(sep);
  pr->print(myData.receivedChars[7]); // Print btye 7
  //  pr->print(sep);
  pr->print(myData.receivedChars[8]); // Print btye 7
  pr->print(sep);
  pr->print(myData.PRO3600_Disconnected); // Print btye 7
  pr->print(sep);
  pr->print(myData.No_data);
  pr->print(sep);
  pr->print(ledstate);
  pr->println();
}
void TimerService01();
TimedAction Timedact01 = TimedAction(80, TimerService01); // mS
void TimerService02();
TimedAction Timedact02 = TimedAction(150, TimerService02); // mS
void setup() {
  Serial.begin(9600);
  SPI.begin();
  display.begin();
  display.setContrast(contrastValue);
  display.clearDisplay();
  display.display();
  Serial.begin(9600);
  myData.No_data = false;
  myData.PRO3600_Disconnected = 20;
  radio.begin();
  network.begin(90, this_node);  //(channel, node address)
  radio.setDataRate(RF24_2MBPS);
  pinMode(button, INPUT);
  digitalWrite(button, HIGH);
  pinMode(led, OUTPUT);
}

void loop() {
  Timedact01.check();
  Timedact02.check();
#if ECHO_TO_SERIAL
  printRecord(&Serial);
#endif //ECHO_TO_SERIAL
}

void TimerService01() {
  network.update();
  //===== Receiving =====//
  while ( network.available() ) {     // Is there any incoming data?
    RF24NetworkHeader header;
    network.read(header, &myData, sizeof(myData)); // Read the incoming data
    myData.No_data = true;
    //  myData.PRO3600_Disconnected = 10;
    NO_Data_in = millis();
#if ECHO_TO_SERIAL
    printRecord(&Serial);
#endif //ECHO_TO_SERIAL
  }
  unsigned long currentMillis = millis();
  if (currentMillis - NO_Data_in >= interval) { // one second is more than enough
    NO_Data_in = currentMillis;
    myData.receivedChars[0] = '*';
    myData.receivedChars[1] = ' ';
    myData.receivedChars[2] = '0';
    myData.receivedChars[3] = '.';
    myData.receivedChars[4] = '0';
    myData.receivedChars[5] = '0';
    // myData.receivedChars[6] = ' ';
    myData.No_data = false;
    myData.PRO3600_Disconnected = 20;
  }
  //===== Sending =====//
  buttoncurrent = digitalRead(button);
  if (buttoncurrent == HIGH && buttonprevious == LOW)
  {
    if (ledstate == HIGH) {
      ledstate = LOW;
    }
    else {
      ledstate = HIGH;
    }
  }
  digitalWrite(led, ledstate);
  buttonprevious = buttoncurrent;

  // LED Control at Node 012
  RF24NetworkHeader header(master00);    // (Address where the data is going)
  bool ok = network.write(header, &ledstate, sizeof(ledstate)); // Send the data

}
void TimerService02() {

  display.setCursor(0, 1);
  display.clearDisplay();
  display.setTextSize(2);
  display.setTextColor(BLACK);
  display.print(myData.receivedChars[0]);//show signle receivedChars
  display.print(myData.receivedChars[1]);//show signle receivedChars
  display.print(myData.receivedChars[2]);//show signle receivedChars
  display.print(myData.receivedChars[3]);//show signle receivedChars
  display.print(myData.receivedChars[4]);//show signle receivedChars
  display.print(myData.receivedChars[5]);//show signle receivedChars
  display.print(myData.receivedChars[6]);//show signle receivedChars
  display.print(myData.receivedChars[7]);//show signle receivedChars
  display.display();
  display.setTextSize(0);
  display.setCursor(0, 18);
  display.print("TX:");
  display.print(myData.batteryPercentage, 0);
  display.print(" %");
  if (myData.No_data == true) {
    display.setCursor(0, 27);
    display.print(F("SIGNAL GOOD"));
    display.display();
  }
  else {
    display.setCursor(0, 27);
    display.print(F("SIGNAL LOST"));
    display.display();
    digitalWrite(Error_led, LOW);
  }
  // if ((myData.PRO3600_Disconnected == 10) && (myData.No_data == true)) {
  if (myData.PRO3600_Disconnected == 10) {
    display.setCursor(0, 38);
    display.print(F("CONNECTED"));
    display.display();
  }
  else {
    //else if (myData.PRO3600_Disconnected == 20) {
    // else if ((myData.PRO3600_Disconnected == 20) && (myData.No_data == false)) {
    display.setCursor(0, 38);
    display.print(F("DISCONNECTED"));
    display.display();
  }

  unsigned long TX_Error = millis();
  if (TX_Error - TX_previousMillis >= TX_interval && myData.No_data == false || myData.PRO3600_Disconnected == 20) {
    // save the last time you blinked the LED
    TX_previousMillis = TX_Error;
    digitalWrite(Error_led, !digitalRead(Error_led));
  }
}