Как уже упоминалось, у вас не может быть двух свойств с одинаковым именем, которые возвращают разные типы. Вам нужно переименовать один из методов.
Кроме того, вы можете сделать свойство однострочным с Linq:
public virtual IList<ISection> Sections { get; set; }
public virtual IEnumerable<IItem> SectionItems
{
get {
return Sections.SelectMany(sect => sect.Items);
}
}