Well, the odds are a relatively simple calculation:
Take the total (estimated) firepower of all units involved and simulate a single combat round that involves all positive and negative modifiers, including commander rolls. This simulated result is then displayed as positive and negative percentage modifiers of the original firepower. Multiply/add them altogether and get a total (estimated) modified firepower for each side. This modified firepower is then used to calculate the odds.
There are many things that can really make large differences between displayed odds and actual results appear:
1. Low recon: If you only know that there are units in a hex, the base firepower is calculated at 200 or so per unit. The real value can be completely different.
2. The effects of calibre and high hitpoints. Fights are always one subunit vs another subunit. A subunit has to actually make a hit/damage/destroy roll in a single attack. If your individual units are incapable of really getting hits in, it doesn't really matter what the odds are. Calibre has a huge effect here.
3. Leader rolls. It seems like only a single roll is made by the commanders and then applied to all subunits for the entire battle. Since all modifiers are multiplicative percentage modifiers, those modifiers can become insanely high (or low). Since they can have such a huge effect, having different rolls between preview and actual battle can make a huge difference.
4. The modified firepower has everyone fighting at basically "full strength." However, actual combat has the attacker see large negative modifiers in the first few combat rounds. Depending on the results in those rounds, the units never really fight at full strength - some might already be dead, retreating, or gotten severe readiness hits.
5. In addition, some units might simply not have enough AP to really attack well. 10 AP are used per combat round, if you only have 30 AP to attack with (the minimum), then they will never fight at full strength.
6. Low morale/readiness/ammo/fuel. The odds really underestimate just how big the effect the stacked negative modifiers are of troops that are out of supply, have low readiness or morale. Infantry can kill starving/hungry heavy tanks, tank destroyers and walkers that they wouldn't have a chance against normally. The odds don't reflect that enough.