To fix this, you probably need to use the autoflush=False option when you create the GraphWin, and call update() manually to update the graphics. This should also result in smoother animation for moving large numbers of envelopes.
This is discussed in 4.8.6 in the textbook, on page 121. I think it's also in the graphics reference pdf.
Note: there's also a danger to using autoflush=False, because then you may miss things that happen on the screen if you don't call the update() function to make sure that the graphics get updated. This can also be harder to debug, so I don't recommend changing autoflush to False until near the end, when you have things working and just want to get smoother graphics performance.