CC can't properly reassemble RTCM messages sent by the GCS from MAVLink

Hi everyone, i face a problem for a while, that Companion Computer receives random only part of splitted rtcm data sent by GCS from MAVLink.
There are two holybro H-RTK F9P Helical, one as base, another one as rover on RPi4 connected GPIOs interface (firstly test on RPi). I used ROS Humble to publish and subscribe the rtcm data correction via RFD 868x telemetry.
Setup:

  1. Configuration of F9P Helical using ublox u-center: Portable RTK Base Station Setup | Holybro Docs. (measurement rate: 1s)
  2. Established four ros nodes:(all baud rate: 115200)
    a). base_rtcm_reader reads rtcm data from device using pyrtcm (GitHub - semuconsulting/pyrtcm: Python library for parsing RTCM 3 protocol messages.) via serial port and published topic rtcm_data, example of the rtcm_data: Published RTCM Data: <RTCM(1074, DF002=1074, DF003=0, DF004=214172000, DF393=1, DF409=0, DF001_7=0, DF411=0, DF412=0, DF417=0, DF418=0, DF394=5764748329242066944, … , DF403_04(017,1C)=29, DF403_05(028,1C)=40)>
    b. base_transfer: subscribes the rtcm_data, and splits the rtcm_data into data segments (max. 180 bytes) because of the data length limit of MAVLink (RTK GNSS/GPS (PX4 Integration) | PX4 Guide (main)), and sends the data segments via RFD 868x. Here MAVLink rtk.h is used.
    c. rover_transfer: receives the data segments and reassembles to complete rtcm data and publishes the rtcm_data. As a transition node, MAVSDK mavlinkpassthrough is used.
    d. rover_rtcm: subscribes the rtcm_data

The four ros nodes all work functionally well, but rover_transfer recevies always random part of rtcm data in a round and assembles with part of rtcm data in next round. For example the first round the rtcm data is splitted in 5 parts, random one part is received and assembled with one part of next round and so on. I used the makler “<RTCM(” and “)>” to recognize the begin and end of one complete rtcm data, the data segment should be reassembled in buffer, once the complete data is identified with the makler “<RTCM(” and “)>”, it will be released from buffer and next reassemble begins.
I also tried using sleepfor 2, 5, 20ms in base_transfer node after each splitting so that the data segments have enough time to be reassembled, the problem is the same. Does anyone know, where my problem is?