I took a closer look at the code (found in RiseAndFall.py) and the leader switch seems to be triggered by Anarchy, mostly. The settings for leaders are found in Consts.py and there are three sets of these. The code differentiates between "early" and "late" leaders, and there are actually dates associated for each "late" leader:how is it determined when leaders are replaced with later leaders?
Code:
tLateLeaders = ( #all up to 300 turns earlier because the switch is triggered after a few years
(iRamesses,),
(iGandhi, i1700AD, 5, 4),
(iMing_Tai_Zu, i1400AD, 10, 3, iMao, i1800AD, 10, 5),
(iHammurabi, i1600BC, 10, 1),
(iAlexander, i10BC, 5, 2),
(iDarius, i10BC, 5, 2),
(iBrennus,),
tRomanLateLeaders,
(iTokugawa,),
(iZara_Yaqob,),
(iPacal,),
(iRagnar,),
(iSaladin,),
(iSuryavarman,),
(iIsabella,),
(iNapoleon, i1700AD, 10, 4, iDe_Gaulle, i1940AD, 10, 5),
(iVictoria, i1600AD, 15, 3, iChurchill, i1930AD, 10, 5),
(iFrederick, i1500AD, 10, 3, iBismarck, i1760AD, 10, 4),
(iCatherine, i1600AD, 15, 4, iStalin, i1800AD, 15, 5),
(iWillem_Van_Oranje,),
(iMansa_Musa,),
(iJoao,),
(iHuayna_Capac,),
(iKublai_Khan, i1500AD, 10, 3),
(iMontezuma,),
(iSuleiman, i1500AD, 10, 3),
(iLincoln, i1800AD, 15, 5, iFranklin_Roosevelt, i1900AD, 15, 5))
The current code only allows for two "late" leaders per Civ (for a total of 3 per Civ), but the code itself could always be expanded to make room for more.

What the numerical values do is a bit sketchy for the moment, but as far as I can tell - without analyzing the code in great detail - these seem to be the percentile probability for the leader to actually switch, and the era at which that leader would be twice as probable to show up, respectively.
So start the groundwork on this and well make it happen, eventually.
