Made things more tolerant of bad property values

I don't love doing so, but it seems to be essential: if the prop value
is bad, the user shouldn't lose their Thing.  So we now wrap Type
deserialize in a try/catch, so that errors don't bubble up.