Consider catching AttributeError, though, to fall back on the setPropertyValue() method applicable to custom properties (not always supported by setattr). Like so:
When the component is retrieved through Java Swing methods and lists that don't know about IA's custom python wrapping, or were python-wrapped before the custom type converter was registered with Py.java2py(). I haven't exhaustively determined where this applies, so I tend to use the error-checking wrapper everywhere I mix custom and built-in properties. I try to remember to use the methods whenever the relevant code is always accessing a custom property.
If you visit this thread you'll see that Ignition was not registering its wrapper at all. If you install the release candidate of Simulation Aids posted at the end of that thread, you won't have to use the getPropertyValue/setPropertyValue methods any more. The python property substitution for custom properties will "just work" in all cases.