Следующий ответ определенно опаздывает на ФП, но может помочь другим.
У меня была такая же проблема: свойства были либо потеряны, либо вообще не отображались. В моем случае проблема заключалась в том, что тип, указанный в методах ProvideProperty, CanExtend и SetXXX и GetXX, был разным. Например, ProvideProperty и CanExtend указали 'Control' в качестве типа, но в методах SetXXX и GetXXX в качестве первого параметра было указано 'object'.
Итак, как только я убедился, что для каждого типа, указанного в ProvideProperty, у меня совпадают GetXXX и SetXXX, все работает, как и ожидалось.
Может быть, это поможет.
Примечание. После исправления кода мне пришлось перезапустить Visual Studio.