This can solve Engineering
I think it would be waste of time to talk about engineering (everyone knows about it)
War weight should be counted like this:
If someone upgrades townhall, his war weight will be calculated normally as current calculation.
But if his war weight is lower than maximum weight of lower TH, his weight will be set as max weight of lower TH.
So for example:
Max TH9 weight is 70 000
if anyone upgrades to TH10, his weight will be 70 000 and higher
(so TH10 engineers with real weight for example 15 000 will have 70 000 as minimum weight for TH10)
This is easy idea to solve this problem and also easy to implement