Wolfram Language (Mathematica), 44 bytes
If[(s=FromRomanNumeral@#)<3999,s,F]~Check~F&
returns the value for truthy and F
for falsey
the limitation [1,3999]
unfortunateley costs 16 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]