Можете ли вы дважды проверить, что порт 80 на самом деле является результатом вызова GetUrl или это результат прохождения через объект UrlBuilder. Если UrlBuilder виноват, вы можете вызвать свойство PathWithQueryString, чтобы пропустить значения хоста и порта.
var url = new UrlBuilder(ServiceContext.GetUrl(page));
url.QueryString.Set("CaseID", id.ToString());
var path = url.PathWithQueryString;
Если вам нужно сохранить значение порта, его можно обновить вручную.
url.Port = Request.Url.Port;
Это не должно быть проблемой с вашей конфигурацией IIS.