It's interesting that there are no other errors with the data except for the tail end. More robust error checking with check sums, could be incorporated, and might not be a bad idea.
As a quick test with your current code, to both fix the error and see where it is, you could try the following
if (newData == true) {
if (receivedChars[24] != '.')
{
Serial.println("Missing .");
receivedChars[24] = '.';
}
if (receivedChars[25] != '\0')
{
receivedChars[25] = '\0';
Serial.println("Missing NULL");
}
strcpy(tempChars, receivedChars);
// this temporary copy is necessary to protect the original data
// because strtok() used in parseData() replaces the commas with \0
//
// Serial.println(receivedChars); // serial monitor output; not usefull on ESP8266
// Serial.println();
parseData();
// useParsedData(); // still issue with execution and timing (9/5/2018); solved: use in irrigationCommand();
// thingSpeak();
newData = false;
}