Seems achievable but would require a bit of plumbing. On the crow side there are routines you can use to send arbitrary text over the serial port (_crow.tell, print_serial).
For instance you could use something like
_crow.tell('osc', '/my/osc/method', 'encodedbytes')
where 'encodedbytes' is some string built using some custom code to build an OSC payload. This will send something over the serial port like (if memory serves)
^^osc(/my/osc/path,encodedbytes)\r\n
If you control the program on the PC side that’s attached to the serial port, you can decode this and do whatever you want with it. If there’s a broader user interest in this sort of thing (maybe from the crow + max folks?) it might make sense to have an OSC encoding facility on crow for making this kind of thing a bit easier.