The upgrade actually worked fine, and our plugins continued to work in the new 2011 environment.
However, we encountered issues when trying to make changes to those legacy plugins - we were unable to update a plugin using the Plugin Registration Tool, and we also couldn't debug a plugin.
Here's what we did to get around these two problems:
Updating an MSCRM 4.0 plugin within MSCRM 2011
AccountPlugin.dll was written using Visual Studio 2008 and registered into a CRM 4.0 organisation. This organisation was then upgraded to CRM 2011.
We then had to make some changes to the dll. However, when trying to update the existing assembly using the Plugin Registration Tool, we received the error:
Plug-in assembly does not contain the required types or assembly content cannot be updated.
To resolve this, we had to un-register the existing assembly (and all its steps/images) using the Plugin Registration Tool. We were then able to re-register it as a new assembly (and had to re-configure the steps/images).
Debugging a MSCRM 4.0 plugin within MSCRM 2011
Once we had registered our updated version of AccountPlugin.dll, we wanted to debug it. So we loaded up the code in VS 2008, and attached to the w3wp.exe on the server.