A Plugin Recompile is not parsed correctly by Xojo when opening an existing project

I have been dealing with corrupted projects containing a Plugin control instance. This control exposes a number of properties. Many of these properties can be set by popup menus in the property pane. Over time, a popup gets additional fields, for example the old code is

const char *WrapMode[] = {
	"None",
	"Word",
	"Char"
};
REALproperty LexingControlProperties[] = {
	{ "Wrapping", "WrapMode", "Integer", 0, (REALproc)Lexing_WrapMode, (REALproc)Lexing_SetWrapMode, 0, nil, 3, WrapMode },
};

An upgrade to the plugin is

const char *WrapMode[] = {
	"None",
	"Word",
	"Char",
	"WhiteSpace"
};
REALproperty LexingControlProperties[] = {
	{ "Wrapping", "WrapMode", "Integer", 0, (REALproc)Lexing_WrapMode, (REALproc)Lexing_SetWrapMode, 0, nil, 4, WrapMode },
};

Yet the existing instance of the plugin in the project will not see the last field “WhiteSpace”. Only a newly dragged instance will show this <https://xojo.com/issue/41702>. This faulty behavior of Xojo can lead to corruption, during compilation or a crash at runtime. There are other issues. For example, adding new properties under the “Wrapping” header in the properties pane, an existing plugin instance may not show this new IDE-exposed property together with already existing properties. This is further prone to corruption of the project file.

As also is indicated in the feedback report, saving the project file as binary, xml, or project does not make a difference. Going back to Xojo 2013 release 1 is one of 2 options. The other one is to replace the “corrupted” plugin instance with a new instance. All I can say is that this is regression. Xojo versions greater than 2013 release 3 are useless to fix corrupted project files.