Not much mention of the nature of the bugs. I found 2 comments in what is a blog really by a software auditor
The Dalmellington Bug [PDF, opens in new tab – see see para 163+] entailed a user repeatedly hitting a key when the system froze as she was trying to record the transfer of £8,000 in cash from her main branch to a sub-branch. Unknown to her each time she struck the key she was confirming dispatch of a further £8,000 to the other office. The bug created a discrepancy of £24,000 for which she was held responsible.
A general software problem. Software does what it is told to do. One key press to achieve something aught to lock out any other until it's completes. However if a system is overloaded it may have to buffer instructions until they can be implemented so this has to be tied down to a particular transaction to avoid repeating it. This sort of thing can be a complicated area. Sounds like crap code is the main problem here.
Similarly, the Callendar Square Bug generated spurious, duplicate financial transactions for which the user was considered to be responsible, even though this was clearly a technical problem related to the database, the messaging software, the communications link, or some combination.
The Horizon system processed millions of transactions a day and did so with near 100% accuracy. The Post Office’s IT expert therefore tried to persuade the judge that the odds were 2 in a million that any particular error could be attributable to the system.
The PO had a valid argument due to how can they know that it isn't a fraudulent operation. Also it sounds like the reasons for this aren't really known. Following the link brings up this
Mr Green described the Callendar Square bug, which affected legacy Horizon users, and was a problem with Riposte (the database Horizon was built on, owned and operated by an American firm called Escher). It could cause discrepancies in branches and it was known internally as the "Riposte lock or unlock" problem. So far, so uncontroversial
That suggests some limitations in it needed to be accounted for and were not.