Ну, вы звоните ToDictionary
без аргументов, кроме неявного первого. Вам необходимо указать, какая часть последовательности ввода является ключом, а какая - значением. Вы также пытаетесь выбрать новый словарь для каждого элемента, что я очень сомневаюсь, что вы хотите сделать. Попробуйте это:
var dictionary = (from p in returnObject.Portfolios.ToList()
from childData in p.ChildData.ToList()
from returns in p.Returns.ToList()
select new { p.EndDate, returns.Value })
.ToDictionary(x => x.EndDate, x => x.Value);
Кстати, вы уверены, что вам нужны все эти вызовы ToList? Это выглядит несколько необычно.