You would need a separate thread to monitor the serial port. You could then set a global variable from it. Then from the audio thread (e.g.: inside render) you would read the content of the global variable and send a message to a receiver in Pd, using a syntax like this:
this would send to a [r yourReceiver] object in libpd.
In order to do this you'd need a Pd project with a custom
render.cpp file. See the example
On the other hand, the [serial] object is supported by libpd(though I have not tested it), so you may skip all you've done so far and simply try running your Pd patch with the [serial] object in it.
On the other hand again, I would ask you: why do you need Arduino for this application? Is there no way you could connect your device straight into Bela?