Are you sure you are masking off the unused bits in the month and date registers while reading/writing?

You can expect bizarre things if you are simply reading (or writingto) the whole register(s).

Regards,

Anand