I would suggest first to try another charger! Than by what you say, "It had been taking a really long time to charge lately, but once it's charged, the battery seems to hold it just fine.", the battery seems not to be responsible for this situation! I would suggest to take it at a service point since it is out of warranty. If it really has problems with charging circuits (which are docked to the board) you can't do much on your own.