First I would like to say that I have been implementing ERP systems for nearly 30 years and I too share your passion for having sub ledgers balance to control GL accounts. I will tell you that xTuple does in fact post things as configured. It does. Now certainly things go wrong that are outside of anyone's control. Our developers use every possible technique to insure all transactions are committed or none are committed but sometimes network connections drop, power outages hit, etc. I say this just to be sure I am on record here as NOT saying nothing ever happens.
With that caveat out of the way this has been my experience in general. First were the sub ledger and control accounts ever in balance. You would be amazed how many systems are implemented and go up live with these records out of balance. I have had case where the client would say something to the effect of "well we never have balanced". I do every thing in my power to see things are in balance before the first transaction in the new system. That isn't always possible for lots of reasons.
You don't mention in your post if the sub ledgers and control accounts have ever been in balance. I don't mean to be critical of you and I hope you don't take it this way, but the time to check this is NOT just at year end. It is at a minimum at the end of every month and I always suggest once a week. If for whatever reason they get out of balance the sooner we know it the easier it is to figure out why and how to correct. So I ask the question directly. When were the sub ledger and control accounts last in balance?
I can tell you I have made a career of dealing with these situations supporting multiple ERP systems. EVERY SINGLE ONE OF THEM HAVE AT SOME TIME ENCOUNTERED THIS OUT OF BALANCE CONDITION. The primary cause in order in my experience are they were never in balance when the system was first brought live, journal entries were made to the control accounts without any consideration of the detail, changes to the configuration and setups that caused some transactions to not post as expected, database knowledgeable people going into the "back door" and making changes for sometimes purposes of forcing balances instead of deep research and answering why, and then of course outright fraud and theft, hardware failures, and last on the list software bugs. To be sure BUGS DO EXIST IN EVERY ERP SYSTEM ON THE PLANET.
The research techniques do sometimes require digging into the data through the "back door" and I cannot tell you that I have been 100 % successful in always finding the cause, but in the vast majority of cases I have been able to answer "what happened".
I will close by literally begging you to not take anything I wrote as critical of you personally.
Now the solution. Spend the time and money on research to figure out what happened. For that you have to have a starting point that was balanced. Secondly, if the variances are not very large, it may be advisable providing your auditors and tax accountant agree to force them to balance beginning 2019 and put in place a program that test the balance condition every week and if that uncovers some process, configuration, or bug it should be much, much easier to identify and fix.
I will add that AP and AR should match exactly. If you are using foreign currency conversions you can sometimes be off slightly because of rounding. Typically these are very, very minor. Inventory and WIP can vary a little bit if you have fractional units of measure and conversions, if you have costs out to over 2 decimal places or more. Again because of rounding. Also usually insignificant amounts easily explainable and adjustable.
I don't know where you are located, but I have been an xTuple partner for nearly 13 years and I am located in Houston Texas. If you would like to discuss some more, I can be reached at firstname.lastname@example.org or 713-724-8763.