ECM

After working through upgrade issues related to ECM, the number of errors was overwhelming and intent of the customisations unclear, I concluded that pursuing a straight upgrade was not worth the effort involved. If you have many customisations to ECM as this solution did, it might be worth your time to take a step back and work out what exactly the end goal was. ECM has come a long way since its first release and trying to make the code work might be counterproductive, and more likely you are going to miss what the current end goal is.
Here are the issues I had encountered before reaching this conclusion.
Sitecore.Client.Extensions.dll
I was not able to find this in the Sitecore NuGet Feed and had to search around a bit more to work out what it was. It seems to be for SPEAK v1.0.0 rev.140131 for Sitecore CMS 6.6-7.2, which is a prerequisite for ECM 2.1.
Issues:
The type or namespace name 'Serialization' does not exist in the namespace 'Sitecore' (are you missing an assembly reference?)
The type or namespace name 'Extensions' does not exist in the namespace 'Sitecore.Web.UI.WebControls' (are you missing an assembly reference?)
The type or namespace name 'ComponentModel' does not exist in the namespace 'Sitecore' (are you missing an assembly reference?)
The type or namespace name 'Controls' does not exist in the namespace 'Sitecore.Web.UI' (are you missing an assembly reference?)
'AjaxScriptManagerExtensions.UpdateControl(AjaxScriptManager, Control)' is inaccessible due to its protection level
'ControlCollection' does not contain a definition for 'Flatten' and no extension method 'Flatten' accepting a first argument of type 'ControlCollection' could be found (are you missing a using directive or an assembly reference?)
The type or namespace name 'IValidateChangeTracking' could not be found (are you missing a using directive or an assembly reference?)
Solution:
These namespaces, types, and methods are outdated, and I was not able to find a replacement for them, so a rework is required.
ResourceManager does not exist
The resource manager was a class that contained static members used to help get resources.
Issue:
The name 'ResourceManager' does not exist in the current context
Solution:
Install the Sitecore.WFFM.Abstractions.NoReferences NuGet package and change your code to use the DependenciesManager
Sitecore.WFFM.Abstractions.Dependencies.DependenciesManager.Localize("");
Better still rework your code to use constructor injection to get a reference to IResourceManager
.