Вы не рисуете фигуры на Canvas, если используете функции Graphics и Graphics2D, такие как drawRect, drawPolygon, drawOval и т. Д. После того, как они нарисованы, они больше не существуют как фигуры. У вас просто есть изображение с заполненными пикселями.
Как сказал Михи, вам, возможно, придется отслеживать фигуры, которые вы пытаетесь нарисовать, а затем восстановить свое изображение, если оно изменится. Возможно, вы также можете «неокрашить» форму, которую вы пытаетесь изменить, закрасив ее цветом фона и перекрасив измененную форму.