I would probably compute the community sizes before and then just look them up per person.
MATCH (p:PERSOON)
WITH p.lpa as lpa, count(*) as sizeLpa
WITH apoc.map.fromPairs(collect([toString(lpa), sizeLpa]) as map_lpa
MATCH (p:PERSOON)
WITH map_lpa, p.wcc as wcc, count(*) as sizeWcc
WITH map_lpa, apoc.map.fromPairs(collect([toString(wcc), sizeWcc]) as map_wcc
...
MATCH (p:PERSOON)
RETURN p.name, map_lpa[toString(p.lpa)] as lpaSize, map_wcc[toString(p.wcc)] as wccSize
added an apoc issue here to make it easier in some future