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 https://github.com/mavlink/mavlink/tree/master/message_definitions/v1.0
You will find more help here :
https://mavlink.io/en/