I have tried to search deep into this before submitting here. I have changed nodes, attached to tangle a few times and also changed 'minWeightMagnitude' to 14. None of those seem to reflect my correct balance. I last logged in February and the balance was correct. My current wallet is GUI = 2.5.7.
The missing balance should be due to your unconfirmed addresses not getting synchronized by the nodes, thus disappearing from the Tangle. Attach those addresses to the Tangle again, and your missing balance shall come back.
In your wallet, go to the Receive section and click on Generate new Address (or was it Attach to tangle?) multiple times, until you see your balance back. Click on it, wait for it to finish and then click again. This process can take up to 2 minutes, possibly more.
The trinity wallet will automate such things and keep a local history (the current wallet is stateless), so that you don't have to do this in the future.