ethernet.client() http get request working every now and then to bluehost

Hi, I've got around 10 arduinos setup around a farm collecting soil data and uploading the data to a website hosted by bluehost through a simple http GET request. These have been installed for around 2-3 years and updating happily every 15 minutes. Last month all of these arduinos stopped updating every 15 minutes and now get an update through about every 2 days if I'm lucky sometimes going up to a week without updating. I have not changed anything of my end, I have 2 using GSM modules and they are also unreliable. I have done a tcpdump on my router and I can see each station attempt to update every 15 minutes but a don't get any reply from blue host.

below is how I am sending and http request.

  packet = formpacket(collectedData);
  Serial.println(packet);
String formpacket(char c[][7])
{
wdt_reset();
String ret;
ret = (String)"/handleimcoming.php?farmID=" + farmID
                                +"&siteID="
                                +siteID
                                +"&110cm="
                                +c[0]
                                +"&120cm="
                                +c[1]
                                +"&130cm="
                                +c[2]
                                +"&140cm="
                                +c[3]
                                +"&210cm="
                                +c[8]
                                +"&220cm="
                                +c[9]
                                +"&230cm="
                                +c[10]
                                +"&240cm="
                                +c[11]
                                +"&T110cm="
                                +c[4]
                                +"&T120cm="
                                +c[5]
                                +"&T130cm="
                                +c[6]
                                +"&T140cm="
                                +c[7]
                                +"&T210cm="
                                +c[12]
                                +"&T220cm="
                                +c[13]
                                +"&T230cm="
                                +c[14]
                                +"&T240cm="
                                +c[15];
                                return ret; 
}
  Serial.println("ARDUINO: attempting upload");
  if (skip == 0)
  {
    if(gsm){
     // powerOnSim900();
     // gsmSendTCP(packet);
     // powerOffSim900();
    }
    if(ethernet){
      ethernetSendTCP(packet);
    }
    success = 1;
  }
  else
  {
    Serial.println("read failure");
  }
void ethernetSendTCP(String packet){
  if(client.connect(server, 80))
      {
          Serial.println("connected...");
          Serial.println("Forming HTTP Request");
          client.print("GET ");
          client.print(packet);         
          client.println(" HTTP/1.1");
          client.println("Host: localhost");
          client.println("Connection: close");
          client.println();
          Serial.println("ARDUINO: HTTP message sent");
          client.stop();
          client.flush();
      }
}

i have also attached a packet capture which failed to upload to the website, any help would be much appreciated, I have been scratching my head for weeks.

I should also mention if I copy the url into my web browser from tcpdump or wireshark the data updates every time.