突き詰めれば
class Hoge { public string Value { get; set; } }
foreach (Hoge hoge in list) {
hoge.Value = ...;
}
なんだからlistに含まれる各hogeのValue値が更新されるのは当然

XElement型のxmlDocumentとかやめてくれよ…