First things first, what you are using is now called DroneCAN — UAVCAN does no longer exist. It will take a while for all the existing resources and materials to update the naming so certain confusion is expected to persist for some time.
I see that you are using a data type that is not actually present in the standard data type set of DroneCAN, which is a problem by itself because you are not expected/allowed by the standard to add vendor-specific data types into the standard namespace (unless they changed this rule, which I doubt they did). That said, it is unlikely to have anything to do with your specific problem at hand.
I recommend that you analyze the traffic on the bus using the DroneCAN GUI Tool or something similar to see what is happening with your CAN frames. It could be that some of them are being timed out before making it to the bus.
We strongly advise that all new projects should adopt Cyphal/CAN instead of the legacy protocols because of its technical superiority. I wrote about this many times on this forum before, so let me quote myself below.
If you are building a new product and require help navigating around the CAN ecosystem in the drone industry, feel free to reach out to info@zubax.com for assistance.