Using my model, there are two factors that would lead to a low match percentage:
P(match) = 1 - (1-p)^n
low n: although the candidates ranked 16 programs, it does not imply that 16 programs ranked the candidate. A program may decide not to rank a candidate even after interviewing them. Thus, the candidate may have ranked 16 programs but was only ranked by 10
low p: - the candidate has a low probability of matching at any individual program (say, say p= 0.02).
Assuming 9 identical candidates (a simple but unrealistic scenario), there are a variety of ways you could get a find a combination of (n, p) that would produce a 7/9 failure rate. For example, a candidate who ranked and is ranked by 16 programs but is ranked very low (p=0.03) would, on average, match successfully about 28% of the time which is close to 2/9. Or, assuming nonidentical candidates (more likely) there could have been two strong candidates who matched and seven very weak candidates who had no prayer of matching.
As you can see, it is easy to come up with scenarios under which 7 of 9 candidates who rank 16 programs fail to match. Thus, there is nothing really surprising about the match data.