A couple of things you could start off with:
* Take a Wireshark trace of a "good transfer", of a "bad transfer", and compare the two
<= In particular, is there any excessive latency from one host or the other between packets?
* Benchmark a non-scp file copy on the "good host" vs the "bad host" (is the problem truly network/scp, or does one host simply have a faster disk or CPU than the other)?
How are things going with your "other problems"?
Have you tried JConsole, jmx-console, or learned anything more about the JBoss performance issues?
Have you tried "kill -15", or run "gdb" to get a stack trace of the "hung" process (conv32.linux, I recall) to troubleshoot the problem?
Inquiring minds want to know