Ваше свойство настраивается само по себе.
Строка prop2 = ...
в установщике свойств вызывает установщик свойств, который снова вызывает себя, снова вызывает себя, снова вызывает себя, снова вызывает себя, чтоснова вызывает себя, что снова вызывает себя, что снова вызывает себя, что снова вызывает себя, что снова вызывает себя, что снова вызывает себя, что снова вызывает себя, что снова вызывает себя, что снова вызывает себя, что снова вызывает себя, чтоснова вызывает себя, снова вызывает себя, снова вызывает себя, снова вызывает себя, снова вызывает себя ...
Получатель делает то же самое, за исключением того, что вы никогда не вызываете его.
Вам необходимо создать вспомогательное поле для свойства, которое нужно получить и установить.
Например:
private string prop2; //Create a backing field
public string Prop2 {
get { return prop2; }
set { prop2 = EditString(value); }
}