It is my understanding that CFReport will accpet only one value for a given named parameter. In your loop over query results you are essentially resetting the values for your named paramters so it stands to reason that only the last values would show up. Why not write your query inside CFReport? Then you can name the returned fields as query parameters, place them in the detail section, and they should all be displayed there.
Maybe I am oversimplifying the situation. If so, I apologize.
North America
Europe, Middle East and Africa
Asia Pacific