CharcoalCharcoal, 34 bytes
NςA²ξFMDCLXVI«×ι÷ςφA﹪ςφςA÷φξφA÷χξξ
Originally based on @CarlosAlego's answer. A port of @xnor's Python solution is also 34 bytes:
NθA⁵ξFIVXLCD«←×ι﹪θξA÷θξθA÷χξξ»←×Mθ
Edit: A port of @xnor's other Python solution turns out to be 33 bytes!
NθFMDCLXVI«×ι÷θφA﹪θφθA÷φ⁺׳﹪φ³±¹φ
Try it online! Link is to verbose version of code. Note that I've used ⁺׳﹪φ³±¹
instead of ⁻׳﹪φ³¦¹
because the deverbosifier is currently failing to insert the separator.