We've been over this ground before. The overbased metallic detergents in engine oils don't actually 'deterge' so play absolutely no role in cleaning your engine.
It's true that these additives do actually contain 'detergent'. You will find stuff like Linear Alkyl Benzene Sulphonates in all sorts of industrial cleaners. However the purpose of these detergents in overbased metallic detergent additives is to maintain mineral Calcium Carbonate (simple chalk) or Magnesium Carbonate (magnesia) in a very fine colloidal suspension. Yes, impossible as it may sound, something like 300 TBN calcium sulphonate contains about 30% chalk; the same stuff you use to write on a blackboard! It's the chalk (or magnesia) that gives oil it's alkalinity and allows the oil to 'mop up' acids created by combustion or the oxidation of base oil.
For me, magnesium vs calcium is something of a toss up. In my experience, at equal TBN, in gasoline engines, they are roughly equivalent. I have a personal preference for Mg but only because in overall terms, it tends to be cheaper (Mg has a lower molecular weight than Ca so less metal is required to 'carry' a given weight on sulphate ions).
Regarding TBN retention, it's a daft theory pushed by daft people trying to con you into thinking that things are complicated when they basically aren't.