I am probably one of the most liberal members of this forum when it comes to stocking levels. I rarely consider a tank overstocked, as compared to my peers. Heck, I even stock my marine tanks to a degree that makes most experienced fishkeepers nervous.
That being said, I think this tank was overstocked, as a 20 gallon. And I think the overstocking is what caused the compatibility problems. We often have difficult explaining what we mean by "water quality." Keep in mind that ammonia, nitrite, nitrate, and pH are not the only water conditions. They are the water conditions that we discuss because they are most often the cause of fish deaths. However, as you become experienced you begin to learn that other factors play into this as well. In marine aquariums we call this "redox potential". It actually can be tested, although only by scientists with proper equipment. There is no equivalent in the freshwater world, but you have to understand that other factors are in play and the experience of the members of this forum is a great asset in determining proper stocking levels.
One such factor is hormones. Like people, fish give off hormones. These hormones are a method of communication with other fish, and play a huge part in the behavior of fish. Do you ever wonder how a Neon Tetra knows to hide from a larger fish? In an overstocked tank, these hormones are a cause of stress and weaken the immunity of the fish. Fish behavior changes, and how they react in a given environment changes.
I firmly believe that placing fish together, especially fish which grow large and quickly, such as Angelfish, in a small 20 gallon tank is a likely culprit to the problems your boyfriend has had.
By the way, I have followed Kelso's threads for a long time. Kelso is an upstanding member of this community and would never treat anyone with disrespect. It is very difficult to judge the "tone" of a comment on the internet. For this reason I would encourage everyone to take the time to learn who they are talking to by browsing the threads, before making conclusions on someones intent. This is an amazing community we have here and most disagreements are just a matter of communication.