Disclaimer: will do a lot of assumptions here :)
Assumption #1 - milestones are the term used to represent a group of open "defects" / "technical debts" being planned to be addressed during a given period (a month, it seems)
Assumption #2 - you are not considering day to day activities as part of these milestones
Assumption #3 - the purpose of the milestone is to give visibility to senior management on the known issues that have been addressed during the period
Assumption #4 - there's no reserved capacity to exclusively address these items, i.e the capacity is shared with day to day activities
Based on the above assumptions, then you need to have one flexibility in one of your dimensions... scope or time.
Flexible scope: You stick to the monthly delivery pack with a prioritised set of items. You can use something like a prioritised Kanban and the team will address as much items as possible. At the end of the period, a package of the completed items will be generated, delivered to production and reported to the senior management. Remaining items, lower in priority, will automatically be addressed during next period.
Flexible period: You commit to a specific scope, and your team will work on it on best endeavours. Once the committed scope is completed, a package of the committed items will be generated, delivered to production and reported to the senior management.
I'm managing a services project for an year or so, and we do a mixture of both - for the items that can be planned, we forecast roughly 50% of the capacity and work on iterations with specific goals. The other 50% is forecasted for unplanned and day to day services work. Needless to say, there are periods where the % heavily swings towards both planned and unplanned services - but there's an "intention of deliverables" per iteration (i.e. we use fixed period approach).