The only issue I see with the OP's code is the range of output1 should be restricted to 0,1, or 2 as the range of the result for output11 can not be outside the range of 0 to 255. Perhaps the range restrictions are the root of the problem.
I don't think so. In synthesis, casting an integer to unsigned with insufficient length would just cause a wrap around respectively discarding of the upper two bits, e.g. 256 is output as zero.
A simulator stops with an error when the overflow occurs.