It sounds to me like a big part of the problem here is public service wage compression. Someone starts their career working in the public service on a subway project earning say $80k/year. Ten years later, they know a lot about building subways, and they're being paid $120k/year... but if they jump to the private sector, they can get $250k/year as a subway building consultant. Surprise surprise, the public sector ends up never having any in-house expertise.
If you have a recurring problem of "every time we start a new project we find that everyone with relevant expertise has left", you need to pay your experts more!