Re: Do it in house
A hybrid approach would seem apposite, where single central platforms are developed by distributed teams.
Take the example of the Linux kernel - initially developed by a single individual, with basic requirements. Very much a single-platform project.
These days, large commercial parties cheerfully contribute to it's development - to support their hardware, to support their business needs. And small independents cheerfully contribute to it's development - in my case, to selfishly serve my own needs and fix driver bugs for my hardware, but *everyone* got to benefit from my changes.
Even relatively long-lived forks for selfish reasons - the Android versions of the kernel, for example - have a tendency to drift back towards the middle.
And if you really can't live with the direction of it any more, you can always fork it as happened with XOrg, OpenOffice / LibreOffice amongst others.
The NHS has certain common, core, needs. PAS should be a total no-brainer.
So ; yes to local dev teams as the best way to work out what local needs are. You pool together enough local needs, and you end up with common needs - which is where the central project maintainers have a role.
Stick a big Git server in the middle and have at it!