The problem is that the "Positions" elements
are in a namespace, inherited from the enclosing <Message xmlns="http://ebc.mssb.com"> so change to include the namespace info:
public static List<AccruedClass> validaccrued()
{
XDocument doc = XDocument.Load("SampleXML.xml");
XNamespace ns = "http"+"://ebc.mssb.com";
var ac = doc.Root.Descendants(ns + "Positions")
.Where(item => {
float? accInt = (float?)item.Element("AccruedInterest");
return accInt != null && accInt.Value > 0.0f;
})