count(preceding::number of invoice lines) will give the number of lines up to current line (not including the current line). So 1 must be added to get actual no. of lines.
i hope the following images gives you a better idea.
this is the logic used
This is the general kind of invoice received. No problem with heading in the last page
When there are only two lines in the last page, the logic still holds
But when there is only one line in the last page the conditional check
if(total number of invoice lines==preceeding::number of invoice lines+1) become true and the heading is not displayed.