For anyone interested, I was able to get up to 20 outputs on the CAN bus by changing the definition of the actuator_* messages to have larger arrays and slightly modifying the UAVCAN module. It was quite a hassle and not aomething that would get included into the PX4 master, but worked for me. Since the UAVCAN module assumes all outputs are ESCs, it sends the uavcan.equipment.esc.RawCommand message which is limited to 20 values by the UAVCAN standard. You could get more, but you would have to set up the CAN module to send particular outputs using a different message (see the UAVCAN data type reference page), either built in or custom. Its kinda a hack, but it works.