Du solltest diese Zeile
DoubleAnimation daScaleX = new DoubleAnimation(
(double)r.RenderTransform.GetValue(ScaleTransform.ScaleXProperty) + (amountX / 100),
new Duration(TimeSpan.FromMilliseconds(2)));
durch diese ersetzen
DoubleAnimation daScaleX = new DoubleAnimation(
((r.RenderTransform as TransformGroup).Children[0] as ScaleTransform).ScaleX + (amountX/100),
new Duration(TimeSpan.FromMilliseconds(2)));
Die anderen beiden Stellen dann natürlich analog anpassen.
Der von dir gezeigte Quelltext ist aber sehr instabil. Zum Beispiel hängt die korrekte Arbeitsweise von der Reihenfolge ab, in der die Transformationen der Gruppe hinzugefügt werden. Sollte sich die Reihenfolge irgendwann ändern oder eine weitere Transformation der Gruppe hinzugefügt werden, wird dein Programm Scheppern.
Ich habe das Gefühl, dass man das Ganze deutlich eleganter lösen könnte. Vielleicht beschreibst du genauer, was du vorhast.