Если вы установите свойство XElement.Value, то да, оно будет закодировано при сериализации. Но когда вы десериализуете его на клиенте и получите доступ к свойству XElement.Value, оно будет не закодировано. Посмотрите этот быстрый образец:
var htmlData = "<some data>";
XElement element = new XElement("data");
element.Value = htmlData;
var xml = element.ToString();
var data = element.Value;
if (data != htmlData)
throw new NotImplementedException("this didn't work");
Если вы установите точку останова, вы увидите, что переменная 'xml' содержит закодированную строку html.