Is this too big for ISR ?

I would separate the reading of sensors from communicating their values.
i.e. use the ISR just to communicate the most recent sensor readings.
Then do the reading of sensors somewhere else.
Store the sensor values in some volatile globals and then use the ISR to slam
out the most recent readings.

Either that or depending on how fast the data readings really change, only communicate
the changes to the data vs the actual data.
This could dramatically reduce the amount of data transfered.

But since you have not described the overall system and its real needs or what
else might be going on in the foreground it is pretty difficult to make suggestions.

The big concern I have over using a serial port interface like this particularly at
a high data rate is that there does not appear to be any sync sequence or checksum on the data.
So if there is ever dropped character because of noise on the line, the two
ends would be hopelessly out of sync with each other and the receiver would
be "seeing" totally garbage information.

--- bill