Если веб-страница, которую вы посещаете, содержит фреймы, то событие DocumentCompleted будет запускаться несколько раз, по одному для каждого фрейма.И, таким образом, вы будете подписываться на событие несколько раз.Отфильтруйте это, проверив e.Url.Equals (webBrowser1.Url), это верно только для последнего.
Другая проблема, которую вам нужно решить, - отписаться от события, сейчас вы утечетеHTMLDocument.Обязательно отмените подписку перед вызовом Navigate ().