You're making this WAYYYY too hard.
If you've got all of the keys on portB, then just send the whole portB value, all 8 bits, all the keys, all at once, and keep sending them. Even if you don't have all of the buttons on PortB, get all of the buttons states and put them into the bits of a single byte variable and send that.
Get that working so it's infallible, or at least as infallible as you can tolerate it.
Then do all of the hard work at the receiver end figuring out which lights to light or whatever.
I'm thinking you won't get anywhere until that happens...
Bookmarks