How exactly does ethics divergence work?

Ethics 'divergence' is pretty straightforward. Each pop has a 2% chance each year to re-evaluate its ethos. When a pop re-evaluates its ethos, it calculates its individual weight towards each ethic. This weighting is based on empire factors (eg, what ethos you are, what treaties you have, what factions you have, etc) and factors unique to its situation (eg is it a synth, on a planet with slaves, etc). You can find a full list of these factors in the wiki. If any ethic's weight is less than 10% of the total weighting for all ethos, it is ignored. The pop then chooses randomly based on this weighting.

Keep in mind, the pop can simply re-pick its existing ethic. You can see the weighting for any given pop by selecting it and mousing over the icon for its ethic. This is the weighting you should go by, not what's on the faction screen.