Я думаю, это потому, что вы используете только имя файла вместо полного пути.
File.WriteAllLines("myfile.html", lines);
В этом методе вы не указали полный путь, поэтому он попытается сохранить файл в каком-то месте по умолчанию. Какое место? Не нужно думать об этом сейчас.
wb_Messages.Navigate("myfile.html");
Этот метод пытается прочитать данные из файла, но указывается только имя файла. Он не знает, где найти этот файл, поэтому он также будет выглядеть в некотором местоположении по умолчанию.
Но местоположения по умолчанию для обоих методов могут отличаться. Я не знаю, как это работает внутри, но, возможно, вы получите некоторую информацию в документации Microsoft.
Простое решение:
// now filePath becomes "C:\something...\myfile.html"
string filePath = Path.GetFullPath("myfile.html");
// save data using full path
File.WriteAllLines(filePath, lines);
// navigate to file using full path
wb_Messages.Navigate(filePath);