I would have had this done an hour ago, but I was trying to figure out why I was getting the "wrong" answer.
Installed custom functions to try fromRoman() . More details here : https://community.alteryx.com/t5/Engine-Works-Blog/An-Overview-of-the-Alteryx-Abacus-Add-In/ba-p/398...
This is a good example for 'find and replace' and 'dynamic replace'.
I too got a weird number doing things in the correct order of operations.