Hey, Midihub has the following pipes for dealing with tempo sync messages: Clock, Tempo Divider and Sync Delay. In case Midihub is routing the tempo messages to other devices, it does not perform any timing correction, but the MIDI realtime messages are given priority, so they are routed and sent first. Midihub can generate clock, but it is bound by the physical transports - DIN-5 MIDI connections are quite predictable of when the data will get sent out, but USB data can only be sent when the USB host requests for new data, which should happen at most every 1ms, so no USB MIDI device can guarantee accurate clock messages.
Are you using DIN-5 MIDI for connecting all the devices together? Things shouldn’t really be going out of sync, unless there’s some device in the chain that is misbehaving, has the number of steps in a pattern set to an unusual value, or the cables are damaged - after devices receive the song position pointer message and a start/continue message, all of them should receive the exact same amount of MIDI clock messages, keeping all of them in sync.