Your special device is connected to the hardware serial port? If so, do you think that it will enjoy your error messages?
Your loop() starts with
if (mySerial.available() > 0)
Why do you start with a mySerial.read()? And is that data not relevant?
And to answer the question:
If the delay between characters is important, you can use a delay between the characters (e.g. the tens and ones of hours, minutes etc. This should actually be specified in the documentation of your device. You can test that by simply adding a delay(1000) in the beginning of the loop() function.
I however have a feeling that something else is the cause of your problem. Do you need to send the date/time every time to the device or would e.g. once per second work as well.