The simple answer is no. You will need to have several MPF sources to support multiple VS versions.

I think, the best way would be to keep MPF separate from your logic. Create several custom compilation targets like DEBUG, RESLEASE, etc.. but for specific MPF (VS version), and define the references: to one of projects with specific MPF sources, and different
versions of extensibility DLLs. Then you will be able to change the target and build the output files for each version of VS. That is just an idea. There are other similar options. It also depends on what other actions do you perform during the build (I generated
the entire msi file for my extension using WiX project on build, so that was easier to have separate solutions with some common projects for my custom logic). So doesn't matter what way will you use, but all of them require to clearly understand what and when
is referenced and what will be compiled to the output. But keeping your custom project system logic separately is definitely right approach. You might even add an extra layer between MPF and your logic using custom interfaces to reduce the dependency between
them.

It's a pity I can't provide you a ready solution, but hope it will help to figure out in which direction to go further.