Time Stamp occasionally duplicating with serial print

I have code that is designed to send a string of sensor values over serial. Usually it averages the values, but in testing I have changed it so it only averages over 1, ie no average just the data. The values come from ADC reads. I am having an error where occasionally the serial print duplicates the time stamp value, I have tried changing baud rates, adding delays, and changing the number of samples that are averaged over. Does anyone have any ideas?

//number of samples
const int samples = 1;

//filter array 
int readings1[samples];
int readings2[samples];
int readings3[samples];
int index = 0;
int total1 = 0;
int total2 = 0;
int total3 = 0;
int average1 = 0;
int average2 = 0;
int average3 = 0;


void setup() {
  Serial.begin(9600);
  // initialize all the readings to 0:
  for (int thisReading = 0; thisReading < samples; thisReading++) {
    readings1[thisReading] = 0;
    readings2[thisReading] = 0;
    readings3[thisReading] = 0;
  }
  //pinMode(A1, INPUT_PULLUP);
  //pinMode(A2, INPUT_PULLUP);
  pinMode(A3, INPUT_PULLUP);
  pinMode(A4, INPUT_PULLUP);
  pinMode(A5, INPUT_PULLUP);
}
void loop() {

  // subtract the last reading:
  total1 = total1 - readings1[index];
  total2 = total2 - readings2[index];
  total3 = total3 - readings3[index];
  
  // read from the sensor, include a dummy reading:
  int garbage = analogRead(A0);
  delay(10);
  readings1[index] = analogRead(A0);
    garbage = analogRead(A1);
  delay(10);
  readings2[index] = analogRead(A1);
    garbage = analogRead(A2);
  delay(10);
  readings3[index] = analogRead(A2);
  
  // add the reading to the total:
  total1 = total1 + readings1[index];
  total2 = total2 + readings2[index];
  total3 = total3 + readings3[index];
  
  // advance to the next position in the array:
  index = index + 1;

  // if we're at the end of the array...
  if (index >= samples) {
    // ...wrap around to the beginning:
    index = 0;
  }
  
  //Average the values 
  average1 = total1/samples;
  average2 = total2/samples;
  average3 = total3/samples;
  
  Serial.print(1);
  Serial.print(" ");
  Serial.print(average1);
  Serial.print(" ");
  Serial.print(average2);
  Serial.print(" ");
  Serial.print(average3);
  Serial.println(" ");

  delay(5);
}
//Collapse

Why do you consider it an error? There is no time handling in the sketch, other than some delay()'s. Does this behaviour actually break anything?