This answer really answers the specific question of why the error occurs and how to fix it. It doesn't address the issues answered in the linked question. See egreg's answer for that kind of solution or use the solution here as part of the solution given in the linked question.
The \Roman command (and similar commands) expect a counter as an argument, not a number, but your \numexpr yields a number, hence the error you receive:
Missing number, treated as zero.
<to be read again>
\c@4
So if you want to do this simply by using the same method, you need to use the internal command \@Roman which expects a number.
\documentclass{book}
\makeatletter
\def\thechapter{\Roman{chapter}+@Roman{\numexpr\value{chapter}+1\relax}}
\makeatother
\begin{document}
\setcounter{chapter}{2}
\chapter{A chapter}
\end{document}
If you don't want to use the low level command \@Roman you can load the calc package, and use a temporary counter to achieve the same effect:
\documentclass{book}
\newcounter{tmpchap}
\usepackage{calc}
\renewcommand\thechapter{\protect\setcounter{tmpchap}{\value{chapter}+1}\Roman{chapter}+\Roman{tmpchap}}
\begin{document}
\setcounter{chapter}{2}
\chapter{A chapter}
\end{document}

chapter), numbers (\value,\numexpr), strings (\Roman{counter})...Actually, if I remove\thefrom your code, there will be an error, but I don't understand why. Doesn't \numexpr already return a number? I thought\theconverts a number to an arabic string. – Yifeng Huang Mar 26 '22 at 19:20\numexpris documented in a different place (etex manual), however. – user202729 Mar 26 '22 at 20:37\the, so you probably made some mistake somewhere... – user202729 Mar 26 '22 at 20:43\theis not actually needed here, so I've removed it.\theis a TeX primitive that does many things, much more than can be explained in a comment, but not surprisingly we have a whole question on it: The \the command – Alan Munn Mar 27 '22 at 14:56