Как сказал @Rex, это зависит от семантики, которую вы хотите передать.
GetInstance () не обязательно подразумевает одноэлементный экземпляр. Итак, я бы использовал GetInstance () в случае, когда создание экземпляра происходит по запросу, прямое новое нежелательно, и экземпляр может быть, но не гарантируется, что он будет таким же. Пулы объектов также соответствуют этим критериям. (Фактически, синглтон - это специализация пула объектов с сохранением состояния: -))
С другой стороны, свойство статического экземпляра подразумевает одноэлементную и сохраненную идентичность экземпляра.
Кстати, как @RaYell упомянул, ваш пример кода не является одноэлементным, поэтому не следует использовать свойство Instance. В этом случае вы все еще можете использовать метод GetInstance (), так как он будет служить фабрикой экземпляров.