There is actually a more simple method you can use:
GetCustomPropertyAsString(propertyName);
all properties are really stored as strings and this method returns the string value. At one time I was looking at alternate ways to store them, so the overloads with extra params were for that but I kind of abandoned the idea of storing custom properties any way other than string so I added the more simple method.
I'll update the document with the newer method.
Best,
Joe