This is just for informationn:
I had a PMS5003 running successfully on a raspberry Pi 4 for a few days while I tested it. I then felt I needed to move it to a more suitable position so I connected it to a raspberry Pi 3 which I could place in a better location.
This failed with the following message :
"PMS5003 Read Timeout: Failed to read start of frame byte")
and alternatively
"PMS5003 Read Timeout: Could not find start of frame")
Searching for these errors on the web gave me several hits but none of them gave a successful fix. After sometime spent fiddling with the library code and not achieving anything I decided to try something radical. The wiring was the same for the Pi 3 as I had for the Pi 4 so I decided to switch the TX and RX cables around and low and behold it all burst into life. Obviously this may not work for every one but I thought this option should be out there for others to try.
YMMV