XCData is a type of XNode. As such, you should try to Add it to the element, rather than set the value (which is documented to be the flattened text content of the element):
xElement.Element(elementName).Add(new XCData(value));
XCData is a type of XNode. As such, you should try to Add it to the element, rather than set the value (which is documented to be the flattened text content of the element):
xElement.Element(elementName).Add(new XCData(value));