The hardware serial is running at 57600 baud so the fact the serial monitor shows rubbish at 4800 is expected. The lower screen shot at 57600 should work, from my understanding of the sketch and your wiring. It correctly shows the output from the local (right) Arduino when you reset it. I assume that the corrupted characters resulted from the reset of the remote (left) Arduino. That should be sending "Hello, world?" but you received something like "C*±±½± °½É± 'ýjRü".
That's not exactly the right number of characters but is roughly the right length, and the "±±" where "ll" should appear suggests that you're seeing a mangled version of the original text.
If you have another USB cable I'd suggest connecting both Arduinos to the PC and open a second instance of the serial monitor to see what you're getting from the left Arduino's hardware serial. It almost looks as if the two boards are running at different speeds or different serial encoding settings, although I don't see any reason why that would happen.
I connected USB cables to both Arduinos.
And I tried both "soft to soft" and "soft to hard" connections, and
both bauds as shown in soft2soft.jpg and soft2hard.jpg.
But, it can't work.
I put screenshots of serial monitors. When I took them, I pushed both
the reset buttons of the Arduinos once each.
In the screenshots, COM16 is the left Arduino in soft2soft.jpg and
soft2hard.jpg, and COM17 is the right.
I changed the Arduinos to new ones, but the result was same.
I can't upload all files for the maximum attachment size allowed, so I do only files of "soft to soft".
I'll upload files of "soft to hard" in my next comment.