You use freqs(bn, an, 1e6) . That asks it to pick out 10^6 frequencies, but it does not say anything about the range to pick the frequencies from.
For the first two sets of data, b has 3 poles, one of which is real, and the other are complex conjugates with absolute values less than 1e5. That combination leads to 1e6 being chosen as the last frequency.
For the third (and remaining) sets of data, b has 3 poles, one of which is real, and the others are complex conjugates in which the absolute values are greater than 1e5. For whatever reasons, the frequency interpolation routine freqint() discards the ones greater with absolute values greater than 1e5, and that leads to 10000 as the last frequency to be generated.
The work-around is to pass in a vector of frequencies instead of the number of frequencies to generate.