In reply to Fipser@VA:
dchar_req is an unpacked array of a packed array. You are trying to make an assignment to one element of the unpacked array, which is a byte. byte unsigned is equivalent to the packed array bit [7:0].
You can replace your two lines with an unpacked array concatenation:
dchar_req = { dchar_req, byte'(actual_char_tx[1:8]) };