Using Vst2Wrapper in a project is currently not source compatible with using SingleComponentEffect for your VST3 plugin. The reason is due to the macro hackery in the SingleComponentEffect header and source files used to rename getState and setState in IEditController. The problem with this macro hack is that it only works when the interface for IEditController is pulled into any compilation unit via vstsinglecomponenteffect.h before any chance of being pulled in via ivsteditcontroller.h or any other child class of it in the SDK. When that’s not the case (such as with vst2wrapper.cpp), then you get v-table mismatches for the class between compilation units.
Vst2Wrapper either needs to become “SingleComponentEffect aware” somehow, or ideally best would be to just rename the getState and setState methods in IEditController to something that does not clash with IComponent. I realize that that would be a source-breaking change, but this code is always going to be fragile if it remains used the way it is in a multiple-inheritance situation.