agree with post above, re-using code and be able to do it fast is pretty important, i think the change in functions was actually a huge step towards this, because referencing to functions is now more easy to code-check which i believe was one off the bigger problems.
I suggest moving in steps, each step could already help in copying pieces of code to new projects
step 1 export section of code to new project
-export all references to a new project (layers, plugins, sprites, variables,... )
step 2 convert new project
-prepares the code and objects for better import
-add an unique identifier to all names and variables to eliminate nameconflicts
-the code now references this new unique identifier
step 3 import from a new project
-create layers
-plugins (check for existing plugins versus the import to decide what needs to happen)
-import sprites
-add variables to objecttypes , sprites, etc..
-import events (if everything exist and has correct naming this should not conflict anymore)
step 4 an automated design that processes this steps in one go
after this process user renames some of its naming and variables to better work in current project