Dropping thousands of records into a batch via SQL
Well this is not really an answer but it is a workaround. We've found that when creating the batch, if we specify the Payment Instrument (e.g. Credit Card) then it works. So we can get around this for now by doing separate batches for credit cards and checks.