I can probably make some educated guesses about what may have transpired, at least from the performance side, since I've done engine-side programming for AAA games in the past.
Unless you're working with an established and already-polished game engine, all the art content for a game of this size has to be built far in advance of when the engine is fully ready to render it at full efficiency. By it's very nature, optimization is something that has to occur near the end of development for a game, since there's no way to optimize game features until they're largely finished and can approach performance issues holistically. The hardest thing about that is you have to make a very early prediction about how much your game will be able to render. It's extremely time-consuming to fix if it turns out your engine simply can't cope with the amount of artwork or game content it's being asked to process, as that artwork and game content has been in the pipeline for years.
The kicker is that you can't really know for sure what the bottlenecks are exactly and how you can improve on them before you begin the investigation and optimization process, nor can you really predict with 100% certainty how effective your efforts will be, or how long it will take. This is why the recommended specs on boxes are often, at best, simply guesses that are made by the engine developers many months in advance of the title's ship date, and are a reflection of how well they *think* they can get the game engine working. Of course, in other cases, it's managerial wishful thinking, trying to sucker people with lower-end systems into purchasing the game. To me, it seems entirely likely that the programmers either overestimated how much they could optimize the engine / game code or the artists went far beyond their established budgets. Maybe both. Management compounded this issue by not giving the development team time enough to fix the problems.
None of this excuses them in the least, of course, especially on consoles with immutable, fixed hardware to test on. They should have owned up a many months ago and let people know the game wouldn't be ready, because there's zero chance they didn't know about all these problems. Unfortunately, there's a great deal of pressure put on programmers to simply try to patch up the game as best they can given the current time left in the schedule, rather than re-assessing realistically how much time they *actually* need to fix the game, because, you know, money. Instead, I'd imagine that those guys were crunching for many months before the game shipped, and they're still crunching away with insane hours, trying to fix all those bugs. It probably ending up being counter-productive too, because, at least in my case, the quality of my code dropped rather dramatically when I was exhausted.
It's pretty difficult to really know what's going on inside a company. For any game we released, I always saw lots of fan speculation about what was going on, and more often than not, it was well off the mark. So definitely take any speculation, including mine, with a grain of salt. What's absolutely inescapable, though, is that Ubisoft management is ultimately responsible for the go/no-go ship decision, and decided that they didn't care enough about their customers or their reputation to bother getting their game polished to an acceptable standard before launch.
I haven't bought an Ubisoft game since they started on this ridiculous anti-consumer DRM campaign, and this makes me really glad I'm still staying the hell away from them. Yeah, I'd probably have enjoyed the Assassin's Creed series, but there are plenty of game companies that don't piss all over their customers, and they'll be getting my dollars instead.