My approach at parsing this:
There's two point in time with two ages each:
M, M0, and A, A0
Then the sentence can be expressed as:
* M = M0 + X and A = A0 + X and (X is the time difference)
* M = 24 and ("Mary is 24")
* M = 2 * A0 and ("Mary is twice as old as Ann was")
* M0 = A ("Mary was as old as Ann is now")
Yes, this was exactly what I had, pretty much. A system of equations, 4 equations, 4 variables.
MO (mary old), MN (mary now), AO (ann old), AN (ann now)
MN = 24
MO = AN
2AO = MN
MN - AN = MO - AO