Hello,
I didn’t fully understand what you tried to do. But here is some clue:
MAVROS is just a bridge between ROS messaging and Mavlink.
About Mavlink usage. The only need message is really the heartbeat as it contains essential status information and implement the mavlink routing feature. Mavlink C implementation already got big helpers function to help you implement the sender and receiver functions.
Mavlink common.xml implements a set of common usefull message. If those don’t suit you, you can easily create your own set of message … but you will need to compile MAVROS yourself to include your messages. MAVROS only undestand message from mavlink/message_definitions/v1.0 at master · mavlink/mavlink · GitHub
You will find more help here :