The EOMONTH is a big help I wanted to get rid of the helper columns, but the logic produces the same problem I was having with my formula. Below is sample dates using =EOMONTH(A2,6+(DAY(B2)>9))+$F$2. What you can see is in bold 10/2/2017 end date should be 4/7/2018 but the formula for some reason makes it 5/7/2018. If you make (A2,5+ like you suggested, it throws more dates off than just the one. Hope this helps.
<colgroup><col style="mso-width-source:userset;mso-width-alt:4022;width:83pt" width="110"> <col style="mso-width-source:userset;mso-width-alt:3657;width:75pt" width="100"> <col style="width:48pt" width="64"> <col style="mso-width-source:userset;mso-width-alt:4242;width:87pt" width="116"> <col style="width:48pt" span="2" width="64"> </colgroup><tbody>
[TD="class: xl64, width: 110"]Start Date
[/TD]
[TD="class: xl64, width: 100"]End Date[/TD]
[TD="class: xl64, width: 64"][/TD]
[TD="class: xl64, width: 116"]Formula Date should Equal Column B
[/TD]
[TD="width: 64"][/TD]
[TD="width: 64"]Fixed Day[/TD]
[TD="class: xl66"]7/5/2017[/TD]
[TD="class: xl68"] 2/7/2018
[/TD]
[TD="class: xl64"][/TD]
[TD="class: xl66"]2/7/2018[/TD]
[TD="class: xl64"] 7
[/TD]
[TD="class: xl66"]7/21/2017[/TD]
[TD="class: xl66"]2/7/2018[/TD]
[TD="class: xl64"][/TD]
[TD="class: xl66"]2/7/2018[/TD]
[TD="class: xl66"]7/24/2017[/TD]
[TD="class: xl66"]2/7/2018[/TD]
[TD="class: xl64"][/TD]
[TD="class: xl66"]2/7/2018[/TD]
[TD="class: xl66"]9/11/2017[/TD]
[TD="class: xl66"]4/7/2018[/TD]
[TD="class: xl64"][/TD]
[TD="class: xl66"]4/7/2018[/TD]
[TD="class: xl67"]
10/2/2017
[/TD]
[TD="class: xl67"]
4/7/2018
[/TD]
[TD="class: xl65"][/TD]
[TD="class: xl67"]
5/7/2018
[/TD]
[TD="class: xl66"]10/10/2017[/TD]
[TD="class: xl66"]5/7/2018[/TD]
[TD="class: xl64"][/TD]
[TD="class: xl66"]5/7/2018[/TD]
[TD="class: xl66"]10/23/2017[/TD]
[TD="class: xl68"] 5/7/2018
[/TD]
[TD="class: xl64"][/TD]
[TD="class: xl66"]5/7/2018[/TD]
[TD="class: xl66"]11/16/2017[/TD]
[TD="class: xl66"]6/7/2018[/TD]
[TD="class: xl64"][/TD]
[TD="class: xl66"]6/7/2018[/TD]
[TD="class: xl66"]11/21/2017[/TD]
[TD="class: xl68"] 6/7/2018
[/TD]
[TD="class: xl64"][/TD]
[TD="class: xl66"]6/7/2018[/TD]
[TD="class: xl66"]12/7/2017[/TD]
[TD="class: xl66"]7/7/2018[/TD]
[TD="class: xl64"][/TD]
[TD="class: xl66"]7/7/2018[/TD]
[TD="class: xl66"]12/28/2017[/TD]
[TD="class: xl66"]7/7/2018[/TD]
[TD="class: xl64"][/TD]
[TD="class: xl66"]7/7/2018[/TD]
[TD="class: xl66"]1/10/2018[/TD]
[TD="class: xl66"]8/7/2018[/TD]
[TD="class: xl64"][/TD]
[TD="class: xl66"]8/7/2018[/TD]
</tbody>