There seems to be a problem in HAL_RTCEx_BKUPWrite which is available in CubeF1 1.6.0 package.
void HAL_RTCEx_BKUPWrite(RTC_HandleTypeDef *hrtc, uint32_t BackupRegister, uint32_t Data)
uint32_t tmp = 0U;
/* Prevent unused argument(s) compilation warning */
/* Check the parameters */
tmp = (uint32_t)BKP_BASE;
tmp += (BackupRegister * 4U);
*(__IO uint32_t *) tmp = (Data & BKP_DR1_D);
it's not clear if this function is capable of writing 32 bit variables or not, because Data is uint32_t but then it ANDs Data to cut its least significant 16 bits.
It may confuse the user.