If there is a script error and you open Unity, none of the scripts outside of the plugins folder will recompile. This causes the types to not be found, and be removed from the list.
I think instead of removing the type from the list, it should save to a “remember this” list of strings. Then on every recompile, it should check to see if the types in this array exists.