In order to determine if the problem lays on Net::OpenSSH or on the SSH layer, instead of capturing the output with
capture, redirect it to some file:
$index++;
$ssh->system({ timeout => $sshtimeout,
stdin_data => "\n",
stdout_file => "/tmp/stdout_${index}.txt" },
$sshcmd."\n");
Then look into those files, if there is still some missing data, it would mean that the problem is on the SSH layer, probably on the SSH server. Otherwise, the more likely cause of the problem would be some bug on Net::OpenSSH.
It is not uncommon for network equipment to have defective SSH implementations. When that happens, if you are lucky, a firmware update may solve it. Otherwise, you may need to employ some ugly workaround like activating pagination and using Expect to request pages.