Importing records in GnuCash is a pain. Credit card payments end up with two records of the payment, one from the credit card and another from your bank. There's no way to merge records in GnuCash, ideally you would be able to mark them as the same record, but keep them both to keep the import logic happy.
How are you doing this? The OFX import tool has a bayesian matcher that will update and reconcile existing records, and classify them based on past behavior. The big challenge IMO is that each transaction has a date, but sometimes the ends disagree on when it happened. E.g. you transfer money from checking to a brokerage, it takes multiple days but you have to choose one date for that transaction.
They're separate records whichiwould like to keep... but as a single merged ledger entry.