Ist doch ganz einfach, oder?  
Das 'fiese' an der Aufgabe ist, dass wir von einer Eigenschaft Alter sprechen, die sich über die Zeit verändert (das Alter also eine Funktion der Zeit ist). Diese Eigenschaft muss man entsprechend auch als Funktion hinschreiben, wenn man die Aufgabe algebraisch fassen will. Die Funktion ist eine sehr einfache; mit dem gleichen Lösungsweg könnte man aber auch Aufgaben behandeln, die auf viel komplizierteren Funktionen als das Alter basieren.
Wir sprechen von zwei Zeitpunkten:
 t2 : der spätere (in der Geschichte heute)
 t1 : der frühere (uns unbekannten)
 dt = t2 - t1 (dt ist die Zeitdifferenz zwischen t1 und t2)
Die Aussagen lassen sich wie folgt aufschreiben (wobei XYZ.Alter(t) das Alter der Person XYZ zum Zeitpunkt t ist):
Mary ist 24 Jahre alt.
(a)   Mary.Alter(t2) = 24
Sie ist doppelt so alt, wie Anne war, ... (zum Zeitpunkt t1)
(b)   Mary.Alter(t2) = 2 * Anne.Alter(t1)
als Mary so alt war (zum gleichen Zeitpunkt t1), wie Anne jetzt ist.
(c)   Mary.Alter(t1) = Anne.Alter(t2)
Wir nehmen über das Alter an, dass für alle Personen XYZ gilt, dass sie innerhalb von dt um dt älter werden. Unter Berücksichtigung der Relativitätstheorie ist dies zwar eine etwas saloppe Annahme, aber so in etwa stimmt dies schon. 
(d)   XYZ.Alter(t+dt) = XYZ.Alter(t) + dt
Aus (a) und (b) folgt:
(1)   Anne.Alter(t1) = 12
Aus (c) und unseren Annahmen über Zeitpunkte folgt
   Mary.Alter(t1) = Anne.Alter(t1+dt)
Wegen (d) gilt:
(2)   Mary.Alter(t1) = Anne.Alter(t1) + dt
Wegen (a) und (d) gilt:
(3)   Mary.Alter(t1) = 24 - dt
Aus (2) und (3) folgt:
   Anne.Alter(t1) + dt = 24 - dt
Und (1) ergibt
   12 + dt = 24 - dt
   2 dt = 12
   dt = 6
Aus (c) ergibt sich
   Anne.Alter(t2) = Mary.Alter(t1) = Mary.Alter(t2 - dt) = Mary.Alter(t2) - dt
   Anne.Alter(t2) = 24 - 6 = 18
... und als Zugabe
   Anne.Alter(t1) = 12
   Mary.Alter(t1) = 18
Jetzt hoffe ich nur noch, dass ich mich nirgendwo verschrieben habe oder sich doch noch ein Überlegungsfehler eingeschlichen hat ...  