So the problem is not with the order of types of changes (tables, then data then FKs) but that you are using just the generated data insets with an existing table and FK structure? Liquibase does not even try to figure out how rows depend on each other as it gets nearly impossible in the general case.
The easiest solution is to disable FK checks before inserting and re-enable them after. How you do that depends on your database, but you can include something like:
<changeSet id="disable-keys" author="x" runAlways="true">
<sql>SET FOREIGN_KEY_CHECKS=0;</sql>
</changeSet>
before your <insert>
tags and
<changeSet id="enable-keys" author="x" runAlways="true">
<sql>SET FOREIGN_KEY_CHECKS=1;</sql>
</changeSet>
after them.