Based on what you are reporting it seems that the query may be too complex for the server behavior to pick it up. There are a couple of things you can do to see if you can get around this. One thing is to try the query minus the alias name you are applying to your concatenated field list. I'm not sure if the query will work the same but it is worth trying to see if you get the desired result.
The other thing to try would be to create the recordset in a simple fashion then update it after you have created the 'dynamic array' server behavior. Doing it this way you may be able to force it to work with the query if it is altered after the fact. If you end up going this route you may need to update the server behavior where it matches the column name and have it work with your alias if needed.