Kate, look at the metadata within iTunes. That's what determines what you're seeing on the iPhone. Songs with differing metadata for Album Artist, and (Sorting) Album Artist for example will all create separate instances of what you describe. But there could be other fields that do this too.
The purpose of Album Artist is so that if you got a CD that contains 10 songs, each by different performers, it doesn't later appear as if you have 10 CDs, each with only 1 song on it. In other words, the Artist for each song would be the expected artist's name, but the Album Artist for each song would be something like "Various" or "Various Artists" --- only the latter would appear listed in iTune's main Artist category, however for each
song, the artist's name would still appear.
Re-arranging iTunes' View Options (Command-J) and/or Column Browser (Command-B) settings will reveal how things are tagged because they reveal those tags (or keep them hidden, and so you don't know see what's going on at a glance.)
Pick ONE album in iTunes to experiment with until you understand the effects of your metadata edits on the iPhone. Pare down the metadata for all songs until you catch what's causing it.
Select all the songs within that album, or simply the album's name and Get Info (Command+I) to bring up the Multiple Item Information window.
Fields where you see data, is where each song already has that shared data. Blank fields represent either a difference for that field for one or more songs (from each other) or indeed, blank data for all songs for that field.
Tip: for the fields that appear blank, put a checkmark to ensure all songs get that field zeroed out.
Although you can always edit songs individually, when you have a problem with a
group of songs, you should be able to edit them en masse instead to take care of it.