Hello,
Based on what you describe above, it sounds like you are using the older PropertyGrid version. You could use EditorAttribute on each property that should get this property editor. Note that you have to specify it like this:
[Editor(typeof(SyntaxEditorPropertyEditor), typeof(PropertyEditor))]
Where SyntaxEditorPropertyEditor is a PropertyEditor-derived class that would indicate the value template to use.
In the newer PropertyGrid control that is in our v2017.2 Grids assembly, EditorAttribute still works, but you also can make a class that inherits PropertyGridValueTemplateSelector and set that to the PropertyGrid.ValueTemplateSelector property. The PropertyGridValueTemplateSelector.SelectTemplate method is called any time PropertyGrid is used to pick a DataTemplate to use for editing a value. It runs through the logic of looking for things like EditorAttribute. Thus by overriding the SelectTemplate method, you could change its behavior in one central spot without using the PropertyEditors collection or EditorAttribute.