STM32G474 not erasing flash by page?
I've found the issue.
 EraseInitStruct.Page  

is supposed to be the page number of the bank (0-127). ADDR_FLASH_PAGE_XXX is the memory address of the start of the page.