MSDN says:
This method works as if the general format character, "G", were
specified. That is, if the FlagsAttribute is not applied to this
enumerated type and there is a named constant equal to the value of
this instance, then the return value is a string containing the name
of the constant. If the FlagsAttribute is applied and there is a
combination of one or more named constants equal to the value of this
instance, then the return value is a string containing a
delimiter-separated list of the names of the constants. Otherwise, the
return value is the string representation of the numeric value of this
instance.
So ideally in your case it should work fine (considering FlagsAttribute is not applied and there is a named constant equal to the value of this instance). Can you mention the differences between the boxes?
Also, try giving explicit numbers.
private enum TimeUnit
{
Day = 1,
Month = 2,
Year = 3
}