This is how I did it for now, maybe it will help someone.
tl = new TimelineLite
onStart: =>
// Amazing revelations about l and t
tl.to "#element3", 0.4, { left: l, top: t, overwrite: true }, 0
tl.to "#element1", 0.4, { width: w1, height: h1 }, 0
tl.to "#element2", 0.4, { width: w2, height: h2 }, 0
It's in coffeescript I hope you don't mind. But basically it will calculate what it's doing at the second it starts.
Everything goes crazy for me if I scrub in reverse.