Here is my slow, long, but functioning solution for join:
() bury ( ) swap cat cat ( ) split do copy buryd swap cat cat (digd peek some (zap zap nip) (buryd bury copyd buryd cat digd cat swap copy do) choice do) copy do
it looks like your starting to figure it out! Btw, I recently learned that instead of "(A B choice) copy do" you can have "(B if) copy do A" and it's slightly faster.