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.