I decided to put it aside, to give my mind some rest, and back to DS3231.
I found that it does not return seconds properly.

Have two different example codes, they work fine for minutes and hours, but does not work for seconds - seconds increase like 02 04 08 10 12 14 16 till 28, then 29 and again increase in 2 and so on.

Code:
SecondsMSB=BCDSeconds & $70 
SecondsMSB=SecondsMSB>>4              
SecondsLSB=BCDSeconds & $0F              '
Seconds=(SecondsMSB*10)+SecondsLSB 'combines DECMinutes MSB and LSB


x=RTCSEC >> 4
Y=RTCseC // 16
z=X*10+Y