Wolfram Language (Mathematica), 4035 bytes
If[FromRomanNumeral@#<3999,TCheck[FromRomanNumeral@#<3999,F]~Check~F&1<0]&
returnsT
for truthy and F
for falsey5 bytes saved, thanks to @attinat
the limitation [1,3999]
unfortunateley costs 127 bytes...
here is the code for any roman number
Wolfram Language (Mathematica), 28 bytes
Check[FromRomanNumeral@#,F]&
the above code works for any number, not just [1,3999]