Not sure if I'm allowed to share the data even if it is scrambled, so I would rather not. However, if you assume the source data is near identical to what Henric is using than it should be close enough.
Again, it appears my solution is working but I tend to make things more complicated than they need to be and run into problems further into the development.
It seems clear. I would have coded differently the last WHERE clause, but it is certainly not so good (it depends on the date you may have)
WHERE addmonths([Start Date], IterNo()-1) <= [End Date]
So I understand that the loop is done until the End Date. And no need to compute the MonthDiff.