I was stuck with the same issue, had a lot of versions / deployments from my longest running Appscript project which I made with almost no documentation to help me, and the number of versions finally caught up with me over Christmas.
The trick to cleaning up the mess was to first decouple the deployments from the versions. Go into Manage Deployments, and edit some deployments so that they point at the same version. The unlinked versions can then be deleted, and that'll be enough to give you some space to update new versions.
Using Archive on deployments seems to delete any "excess" ones that point at the same code version, so that's how to clean up the number of Deployments too, once you've unlinked them from all the version.
I wrote scripts to clean up the mess for me, however the core issue was hitting "New Deployment" whenever the code was updated, since I wasn't clear about how their versioning system actually worked. So it's something you can definitely avoid running into a second time.