array of objects to do_action, callback gets singular object?

I don’t know if you solved this, I just had same problem,

Second argument in do_action has special check if it is array with only one object,
In that case they use reference to object in array instead of array with object. I believe they use this method to pass and preserve reference through function with variable arguments.

I used do_action_ref_array() to avoid this.