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")