Попробуйте что-то подобное:
ctx.AccountHeaders.GroupBy(x=>x.accountdate.Year).Select(x=>x.Key).Union(
ctx.AccountDocuments.GroupBy(x=>x.accountdate.Year).Select(x=>x.Key)).Union(
ctx.AccountNumbers.GroupBy(x=>x.accountdate.Year).Select(x=>x.Key));
Если столбец даты обнуляем, вам нужно его немного изменить. Также проверьте, какой SQL он генерирует, может потребоваться перефразировать запрос, чтобы получить более оптимальный код SQL.