I have been using bvhacker [link] to help smooth out some looping animations and noticed that it reported one more frame than bvh_import.py was loading. I doubled the last line of the .bvh file I was working on and reimported and sure enough there was the missing frame.
Line #234 (from 2.46) reads:
while lineIdx < len(file_lines) -1:
As a quick hack I removed the -1 part and it also correctly imported all frames from the original .bvh (from Second Life). It also worked with no errors on one imported from the converted CMU repository. No clue if that is the right fix or not.