Como a quantidade de minutos é sempre definida corretamente, provavelmente não é a bateria, mas o problema de fuso horário. O Windows tenta manter o relógio HW na hora local. O Linux tenta mantê-los no UTC.
O seu experimento com hwclock --localtime
estava quase certo, mas o hwclock o altera apenas para a inicialização atual. Você quer salvar esta informação permanentemente.
Defina UTC = não em / etc / default / rcS para mantê-lo persistente ao longo do tempo.
veja link para mais detalhes
Depois de configurado corretamente, você deve ativar novamente a sincronização automática no Linux e no Windows.