Welcome to the wonderful world of freelancing.
You will only learn by experience how best to handle individual clients like this.
However, make it clear from the outset what your terms and rates are. Have a contract that specifies, how many rounds of corrections are included (I have up to three), after which they will be charged by the hour for further amends, or up to 100% for a complete redo.
Knowing they are paying money for each time they fiddle around, steels the mind wonderfully and they usually become much more efficient and accurate with revisions. All the while they can get you to keep making changes for free, there is no incentive to make a final decision.
Ultimately, if you are open with them all along, you can’t go for far wrong. ‘Yes I can make that change. It will, of course, incur a charge…’ over and above the agreed amount of revisions.
Clients keeping you on a retainer is not massively common. Most clients employ freelancers on an ‘as needed’ basis. Fair enough. Do you keep you mechanic on a retainer, or just take your car on when needed.
That they keep adding to your workload is not a bad thing. It means you have work coming in – unless they keep adding to it and not expecting to pay more for it. At which, point you need to be open and honest with them.
As to small jobs they keep adding, you can either price them up as you pull any other, or agree with them that for the toddlers, you’ll just charge at an hourly rate. I do this with many of my clients with a minimum quarter of an hour charge. By the time you’ve fiddled around, set up a job number and opened the right files, you’ve always used up the minimum charge.
Remember, freelancing is running a business like any other. 30-40% of it is going to be stuff, other than design: client liaison, invoicing, accounts, etc.