This crash is caused by a mod. The line "at DMD?38554055::CalculateProsperityChangeInternal_Patch2>(DefaultSettlementProsperityModel this, Town fortification, StatExplainer explanation)" tells you it is caused by a mod which patches the CalculateProsperityChangeInternal method.
This crash was caused by native.
Community Patch mod author managed to implement a patch for it, and my saves are literally saved!
Campaign.Current.AllCastles.Where(c => c.CurrentBuilding == null).ToArray() returns none
Campaign.Current.AllTowns.Where(c => c.CurrentBuilding == null).ToArray() returns Dunglanys
so CurrentBuilding should never be null, and should always fallback to CurrentDefaultBuilding
here CurrentDefaultBuilding is also null...
because <<Dunglanys>>.Buildings.Find((Predicate<Building>) (k => k.IsCurrentlyDefault))(edited)
there are no buildings set to default
So he writed a patch for the CurrentDefaultBuilding getter
where if CurrentDefaultBuilding returns null, it will instead
just pick something e.g. Daily Default
He also notified Devs of this problem.