Looks like when loading large history for a room when joining it, Spark tends to mix messages a bit (although it shows the correct time for them). Looks ok in Xabber. Screenshot attached.
As pointed in the recent forum thread, this might be related to deprecation of XEP-0091 since Openfire 3.10.3, which caused problems with offline messages in Spark (fixed in 2.7.5). Openfire is using urn:xmpp:delay now instead of jabber:x:delay. There is probably some part of MUC history code still using it.