As it seems to only fail the first run of the day
Then, you must investigate what happens at that time of the day that is different than when it runs properly.
It may be a problem related to the network, some firewall being rebooted every day at some time early on the morning or whatever. If you can run tcpdump on the machine, you may be able to discover what is happening with the connection at the TCP level.
I'm not sure what you mean by changing it or that I have any power to(?)
If you can, install OpenSSH on the machine and tell Net::SFTP::Foreign to use it instead of the SSH client from Solaris, just to see if it makes a difference.