Yep, as G. says, you need references.
for (auto c: myCircles)
c.move(movement);
In this case, c is a circle. But it's not actually a circle inside of myCircles, it's a temporary copy of one. You move the temporary, then throw it away. Nothing in myCircles actually changes.
It's a bit like doing this:
int a=5;
int b = a;
b=6;
Changing b to 6 doesn't change a to 6 as well, because b is just a copy.
Instead, you can modify the contents of myCircle like this:
for (auto &c: myCircles)
c.move(movement);
c is now a reference to a circle inside of myCircles instead of a temporary duplicate, and anything you do to it will be affecting the original.