This is one possible solution path. The structure of a Roman numeral is PQRS, where P gives the number of thousands in the number, Q is the hundreds part, R is the tens and S is the units part. Apart from 2 and 5, all primes end in one of {1, 3, 7, 9}, so in Roman numerals the units part of any entry is one of {I, III, VII, IX}. The tens part can be any of {X, XX, XXX, XL, L, LX, LXX, LXXX, XC} or nothing, the hundreds is one of {C, CC, CCC, CD, D, DC, DCC, DCCC, CM} or nothing, and in this puzzle the thousands part is either M or nothing, because we’re told the grid has only one M. Note that the last letter of any entry can only be I or X. Also, I can only appear among the last three letters of an entry and X can only be somewhere in the last six letters.
The equation s + b = t + a relates the two nine-letter entries s and t and the two two-letter entries a and b; s and t are both odd, so a and b are also both odd (not both even, because there’s only one even prime, II = 2). They can’t be IX because 9 isn’t a prime, so they both end in I. DI and MI are ruled out because we’re told that D and M occur only in entries longer than three letters, and VI = 6 isn’t prime, so a and b are XI = 11 and CI = 101, in some order. XI can’t go at the bottom of column 1, because the nine-letter entry in row 8 can’t start with X, so CI is at the bottom of column 1 and XI is at the top of column 9.
I can only be in the last triplets of row 8 and column 9, so the three-letter entries in column 6 and at the end of row 5 must end in X. We now have three three-letter entries ending in X (the other is in row 1), so they must be XIX = 19, LIX = 59 and CIX = 109 in some order (not DIX or MIX, because D and M are only in longer entries). As there are no more three-letter primes ending in X, all the other three-letter grid entries must end in I. In particular, the one in row 9 is I_I, which can only be III = 3. Two of them cross in the centre; these can’t be _II because there’s only one such prime left (VII = 7, while XII etc are even); the central letter can’t be V (because any _VI is even), X (because only LXI = 61 is prime, while XXI = 21 and CXI = 111 are multiples of 3), or C (XCI = 91 is a multiple of 7, CCI = 201 is a multiple of 3), so the crossing entries are {XLI = 41, CLI = 151}.
We have one of s and t (in rows 2 and 8) starting with C and the other ending with I. Rearranging the equation we have s − t = a − b, and we know the difference between a and b is 101 − 11 = 90, so the units parts of s and t must be the same (both ending in I). We know the entry in row 8 starts with C, so the longest we can make its hundreds and tens parts is CCC|LXXX, needing more than one letter for the units, ie one of {III, VII} (not IX because both long entries end in I). The units part can’t be VII because then the five-letter entry in column 7 would be ___VI (even) or ___VX (an improperly formed numeral), so both nine-letter entries end in III. In row 8 we have C____XIII; the fourth letter is too far from the end to be an I, so it’s L or X (the entry can’t start with C__M or C__D (not properly formed numerals) or CCCC); the third letter is too far from the end to be X or I, so it’s C or L (C_D… and C_M… would be improperly formed); thus the possibilities are {CCLXXXIII, CCCLXXIII, CCCXXXIII} = {283, 373, 333}, of which the last is clearly a multiple of 3. Now, 373 − 283 = 90, the expected difference, so these could be s and t; the other possibilities are 283 − 90 = 193 = CXCIII and 373 + 90 = 463 = CDLXIII, both too short for row 2; so s and t in rows 2 and 8 are {CCLXXXIII, CCCLXXIII} in some order.
The three-letter entry in column 4 is now L_I or X_I. None of {XII = 12, XVI = 16, XXI = 21, XCI = 91 = 7×13} is a prime, and XLI is already used by one of the crossing central entries, so this entry is L_I. Both of {LII = 52, LVI = 56} are even, so the only prime possibility is LXI = 61. This puts CCCLXXIII in row 2 and CCLXXXIII in row 8. For the remaining __I entry at the start of row 5 there are now no options starting with L, X or I (III is used in row 9), and it can’t start with C because that would make _C__C__ in column 1, which can’t form a valid numeral (CCCC isn’t allowed), so it starts with V, ie, it is VII. Then _C__V__ has to end in VII.
The five-letter entry in column 4 ends in X_, which must be XI to be prime, and starts with X or C (from XLI or CLI in the centre); but X__XI can’t form a valid numeral (XXXX isn’t allowed), so it’s C__XI, putting CLI in the middle of row 5 and XLI in column 5.
The four-letter entry in column 7 is _I__, so it must end in III.
From m + IV = s + IIa we have the five-letter entry m = s + 2a − 4; s is one of {283, 373} and a is one of {11, 101}. Because s − t = a − b = ±90, either (s < t and a < b) or (s > t and a > b); that is, s and a are either the two smaller values in their sets, or the two larger values. For m, the former gives 283 + 2×11 − 4 = 301 = CCCI, which is too short, so we need 373 + 2×101 − 4 = 571 = DLXXI, making m = 571. This also resolves a = 101, b = 11, s = 373 and t = 283. DLXXI doesn’t fit any of the down entries. If it goes in row 1, then the top of column 3 is XC__I, which can only be XCIII or XCVII, but for the entry in row 3 neither IX__I_ nor VX__I_ can be a valid numeral; so the only place for DLXXI is in row 9.
From IIn = IIp + a + III we have n = p + (101 + 3)/2 = p + 52. The two grid entries are _X__I_ and ____I_, so their units parts are from {III, VII, IX}, ie n and p end in {3, 7, 9}; but their difference ends in 2, so p ends in 7 and n ends in 9. The entry in row 7 can’t end in VII, because that would make the five-letter entry in column 7 __IIX, an invalid numeral, so p is _X_VII in row 3 and n is ____IX in row 7. The possibilities for p are {XXXVII = 37, CXXVII = 127, CXCVII = 197} (not LXXVII = 77 as it’s not a prime). The corresponding values for n are {89, 179, 249}, the last of which is a multiple of 3; in Roman numerals, n is one of {LXXXIX, CLXXIX} but CLXXIX would make _LLI in column 3, which can’t be a valid numeral, so n = 89 = LXXXIX and p = 37 = XXXVII. The five-letter entry in column 6 is now _XV_I, which must end in VII; the possibilities are {XXVII = 27, LXVII = 67, CXVII = 117, DXVII = 517, MXVII = 1017}, of which only 67 is a prime, so the entry is LXVII. That makes the entry in row 4 XII_, which can only be XIII = 13.
The lower entry in column 3 is _XLI, one of {CXLI = 141, DXLI = 541, MXLI = 1041}, of which only 541 is prime (the others are multiples of 3), so we can enter DXLI. Both Ds in the grid have now been placed, and they affect three different entries, so the M must be (unchecked) in one of the same entries; the only place for it is in row 6, making MD_I. The lower entry in column 4 is C_XXI, one of {CXXXI = 131, CLXXI = 171} (not CDXXI, which would make the crossing entry the invalid MDDI), of which only 131 is a prime, so this entry is CXXXI and the crossing entry is MDXI = 1511.
The five-letter entry in column 7 is __XIX, starting with C, L or X; the possibilities are {CXXIX = 129, CLXIX = 169, CCXIX = 219, LXXIX = 79, XXXIX = 39} (M and D are no longer available), of which only 79 is a prime, so this entry is LXXIX, making LIX at the end of row 5. Now the three-letter entry in row 1 can’t be LIX and can’t be or XIX (which would make XIII in column 7, repeating the entry in row 4), so it’s CIX, making CIII in column 7. The only remaining _IX entry is in column 6 and must be XIX.
From d = Vt + c + n we have d = 5×283 + c + 89 = c + 1504. There’s only one grid entry greater than 1000, so d = 1511 = MDXI (in row 6) and c = 7 = VII (already in row 5). From e + f + g + h + k + VII = s + m we have e + f + g + h + k = 373 + 571 − 7 = 937. This is the sum of all the four-letter entries except d, for which we have XIII + _C__ + CIII + DXLI + __IX in the grid, so the two unknown entries add up to 937 − 13 − 541 − 103 = 280. As __IX ends in 9, _C__ must end in 1; it can’t start with X (XC_I can only be XCII or XCVI, both even), so it’s one of {CCXI = 211, CCLI = 251} (not CCCI = 301, which is > 280). The corresponding values for the other entry are {280 − 211 = 69, 280 − 251 = 29}; the first is a multiple of 3, so the entry in column 8 is 29 = XXIX and the one in column 2 is 251 = CCLI.
The entry at the top of column 3 is _CX_I. As M and D aren’t available the first letter must be C, so it’s one of {CCXXI = 221, CCXLI = 241, CCXCI = 291} (CCXII and CCXVI are both even), of which only 241 is prime, so the entry is CCXLI. The first entry in row 1 is now _CC__, which can only start with C; there’s not enough room for a units part of III or VII, so it’s I or IX. The possibilities are therefore {CCCIX = 309, CCCXI = 311, CCCLI = 351}, of which only 311 is prime (the others are multiples of 3), so the entry is CCCXI.
Finally, for the two seven-letter entries q and r we have CC__VII and __X__II, in some order. From q + XV = IVr we know q = 4r − 15. The minimum value for CC__VII is CCXXVII = 227, and 4×227 = 908 would need the other entry to start with CM, but M is no longer available, so CC__VII must be q and __X__II is r. The options for q are {CCXXVII = 227, CCXLVII = 247, CCLXVII = 267, CCXCVII = 297, CCCXVII = 317, CCCLVII = 357}, of which the only primes are {227, 317}. The corresponding values for r = (q + 15)/4 are {60.5, 83}, so r = 83 = LXXXIII and q = 317 = CCCXVII, which completes the grid.