#05AB1E, 6161 9 8 bytes
•1∞Γ'иÛnuÞ\₂…•Ž8вв€SÐ)vŽF¯L.•6#&‘нδ•u3ôNèyè}'M3L×)Rεõš}`3Fâ}€˜JIåXIå
Whopping -52 bytes thanks to @Adnan, because apparently 05AB1E's Roman Number builtin wasn't documented, haha.. xD
Try it online or verify all test cases.
Explanation:
ŽF¯ # Push comressed integer 3999
L # Create a list in the range [1,3999]
.X # Convert each integer in this list to a roman number string
Iå # Check if the input is in this list
# (and output the result implicitly)
See this 05AB1E tip of mine (section How to compress large integers?) to understand why ŽF¯
is 3999
.
Original 61 bytes answer:
•1∞Γ'иÛnuÞ\₂…•Ž8вв€SÐ)v.•6#&‘нδ•u3ôNèyè}'M3L×)Rεõš}`3Fâ}€˜JIå