What if you used IQ messages with unique namespaces for each domain as envelopes and the Openfire IQ Router to recieve/send your payload messages from your plugin?
XMPPServer server = XMPPServer.getInstance();
AmqpIQHandler = new AmqpIQHandler();
server.getIQRouter().addHandler(AmqpIQHandler);
It might sound too simplistic for what your needs, but it could work without re-engineering Openfire plugin interface to become domain aware.
Otherwise, what if you created dummy client sessions from your plugin to recieve/send messages for each domain? That would handle normal server-to-server federated messages.