Однажды мы видели странное поведение, подобное этому. Попробуйте добавить косую черту в конце URL-адреса при создании экземпляра сайта.
siteCollection = new SPSite("http://localhost/");
Проблема, которую мы увидели, заключалась в том, что два веб-приложения по существу сидели по одному и тому же URL. Один был полностью спрятан, и его ударили, когда мы оставили за собой косую черту. Может быть, у вас происходит такая странность, если вы удалили корневое веб-приложение и добавили его обратно?