Case default owner is overriding specified case owner
When creating cases from a trigger, you can specify DMLOptions to prevent the assignment rules from firing. Something like this:
trigger X on Y (after insert) {
Case[] cases = new Case[0];
for(Y record: Trigger.new) {
if(someCondition) {
cases.add(new Case(...));
}
}
Database.DMLOptions options = new Database.DMLOptions();
options.assignmentRuleHeader.useDefaultRule = false;
cases.setOptions(options);
insert cases;
}
I haven't personally used DMLOptions before, so you may need to tweak this answer a bit.