Hi Rex,
Yes that is because if you enter -1 as a value there, it is invalid and doesn't get pushed down to the property model's Value setter. The PositiveInt32ValidationRule instance prevents it from ever getting past the Binding. Thus the value only remains solely in the TextBox control there.
When you collapse the category, you are removing the UI elements of the contained properties (including that TextBox). Thus the UI is getting created again as you re-expand the category and the new TextBox no longer has that state.
To work around this, you could validate another way, or you could maybe prevent categories from being collapsible. I don't think there are any other changes we could make to help with this particular scenario.