To make a serial enabled clock is a good idea, but whenever you close the serial connection, the board seems to 'reset' thus loosing data, unless it is stored in EEPROM.
Could the Arduino have some sort or time keeping function, or a shield for this?
The arduino resetting is normal, its the tradeoff for the conveinece of the auto-reset used when uploading a sketch. Its Possible to hardware disable it (which also stops the auto reset working) and usually possible at the PC end to stop it toggling the DTR connection in software which then means the board doesn't reset. How its achieved on your particular setup will vary. Googling "Arduino disable auto-reset" and your operating system / application should yield some clues.
Incidentally, the seeed version of the Arduino has an on-board switch to disable auto-reset. Seeing retrolefty's post reminded me (Since he's a big Seeed fan).
I installed a DS1307 on my home-made lcd/button shield. I used a DIP switch to enable and disable the power and comm lines to the clock if I decide to use the outputs for another project. The battery keeps the clock going and I can easily change the DIP switches and upload the clock sketch any time I wish to use the clock again.
You can get a DS1307 from Maxim as a sample from their website. That's how I got mine. I scavenged a battery holder from an old computer mother board and the crystal from an old watch. My only cost was my time.