Your mistake is in where you are putting your default value. I’m not sure DefaultValue is a standard meta tag, although perhaps it was when the question was written. At any rate, I am unable to find it in current documentation that describes it.
To set a default value, you can initialize the variable in your header.
Change
int32 ItemRarity;
to
int32 ItemRarity = 1;
You can remove “DefaultValue” meta tag. This assignment alone will give you your default value.
In C++, this often is not liked by compilers. I only tried it after failing to find any other solutions, and refusing to believe that forcing every variable to zero for default editor values could be “by design”.
By initializing your variables in your header, you can set a default values to something other than zero. As far as I can tell, this will only affect objects you place from this point forward. Objects already placed in the world, whether zeroed or customized to another value, will be unaffected. Class functions, including constructor, of course can override this “default” value with ease (unless your variable is a constant).