You could start small. Find a toy they don’t use much and put it on a shelf in sight but not very easily accessed. Let it sit for a week or two. Then point out the fact that it has been there and ask if they really want that toy or not? If they say yes pull it down and let them play with it. At the end of the day put it back on the shelf. Let them know it is there. Leave it until they request it again (or not). Pull it down if they ask for it. After 1 or 2 more weeks if they leave it sit put in a box to donate. Do this with 2 toys (or until you get 2). Take them and the the toys to a shelter or another place with kids such as a hospital. Let them walk around and meet the kids. Next go back out to the car and show them the toys. Tell them about the kids inside and how they could use some toys. Ask them to give one each to a child inside.
If this doesn’t work them maybe you have a different problem that just kids keeping too many toys. It coud be they are afraid of having nothing for themselves if they give up some toys. You could be a bit too frugal or another problem. They may actually like all their toys then you need to rotate them. In other words pull out all the toys and put some back in the box and put the others away. Rotate them through out the year. You may consider it excess but they don’t so respect them and let them play. Also you may also hold that garage sale by doing the same system with the toys Put out and then sell if they aren’t played with in the time frame. Give the child most of the profits. Put the rest in a jar for charity. Have them give the money to a charity they have visited and agree it’s worthy of help. That way they learn to give but also they then have money for things they want that your budget won’t extend to. Good Luck.