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.