У вас здесь происходят 2 совершенно разные вещи.
В первом примере вы определяете приватное поле открытого типа. Затем вы возвращаете экземпляр этого уже открытого типа через открытый метод. Это работает, потому что сам тип уже общедоступен.
Во втором примере вы определяете закрытый тип, а затем возвращаете экземпляр через открытое свойство. Сам тип является частным и, следовательно, не может быть представлен публично.
Более эквивалентным примером для второго случая будет следующий
public enum MyEnum { Alpha, Beta }
// ...
private MyEnum _value;
public MyEnum GetMyEnum { get { return _value; } }