Interesting, i've always considered monorepo to be a maintainability win. Your code doesn't rot (as much) because it's constantly rebuilt and tested. When someone improves some downstream code (for example makes some code faster or safer) you get the benefits immediately. And most importantly - you can do huge interface-breaking refactorings on the whole codebase at once, without versioning dance. For example you can remove a parameter from some function in the library and make sure all clients still work, atomically. I think this is a huge maintainability win - as long as you actually want to maintain something and not let it rot.
But really, do you have a choice? Sooner or later someone finds a security bug in the code and you actually have to dig out the code and deploy an update.