From my experience of dates and emailing. Make sure you email/network is solid. People come to rely on emails from workflows instead of looking at views in a SP library.
As every I turn to excel for this kind of stuff.
Youll need to create calculated colums within your library. The formula that seemed to work for me is:
=DATE(YEAR(TODAY()),MONTH(TODAY()),1) - 1st day of month
=DATE(YEAR(TODAY()),MONTH(TODAY()),8) - 8th
=DATE(YEAR(TODAY()),MONTH(TODAY()),15) - 15th
=DATE(YEAR(TODAY()),MONTH(TODAY()),22) -22
Your work flow can then wait until each of those dates in turn to email again.