Core component of SQL Server for storing, processing, and securing data
I'm looking at the topic for sys.dm_hadr_database_replica_states and I see this:
So you would only see SYNCHRONIZED if the secondary has caught up with the primary. Which can be difficult if there is constant activity.
I look at my own AGs that I have here at home, and all my secondaries are SYNCHRONIZING, despite the primary databases all being idle. To note is that these are clusterless AGs and all replicas are asynchronous, so they can never be SYNCHRONIZED.
And maybe that is your issues: Your replicas are set up to be asynchronous?