The most likely causes are:
A transaction is not being shown
The bank reconciliation list displays only transactions against the nominated bank account that are dated on or before the statement date that have not previously been reconciled. Therefore you need to locate the transaction in the Transactions list (not in the Bank Reconciliation list) and check its date and bank account number (which you can do by double clicking it if the information is not visible in the list), and also whether it has been previously reconciled (use the Get Info command in the Select menu to do this).
If a receipt shows “Banked on Banking Journal” next to the receipt number (you need to double click it to see this), it was originally entered against a bank holding account. Hence the transaction itself will not be reconcilable, but the banking journal will.
If you cannot locate the transaction, it probably hasn’t been entered.
A transaction is shown that has already been reconciled
If a transaction that you know you have already reconciled is showing in the list, then you are clearly mistaken, and you have not previously reconciled the transaction (MoneyWorks won’t lie to you!). You have almost certainly entered the transaction twice, and have reconciled one of them but not the other. Confirm that the transaction is not in the list, and cancel the unreconciled one (use the Get Info command in the Select menu to see which is not reconciled).
The Difference calculation is zero, but it doesn’t agree with the ledger balance
There are at least two possible causes of this:
The first is that the opening balance that was used was incorrect. Check this against your bank statement. If it was incorrect, save the bank reconciliation, start another bank reconciliation and alter the opening balance (you will need to click the Change button). However you should ask yourself why there is an incorrect opening balance (perhaps you’ve missed out a statement, or you did not set an opening balance for this account when you set up your account).
The second is that, in previous reconciliations, transactions have been reconciled that shouldn’t have been, or transactions weren’t reconciled that should have been. You will need to look at your previous reconciliation reports to find where the error first appeared, and then decide how to fix it. The most common cause of this incidentally is not reconciling the original opening bank balance that was entered.