Look at the variables being set, and checked. Somewhere along the line you changed some to $address instead of $fulladdress, but left others.
In the join event it is
!$($+(%,version.check,.,[color:red]$address),2)[/color]
$+(%,version.check,.,[color:red]$address)[/color]
while in the ctcpreply event it is
$($+(%,version.check,.,[color:red]$fulladdress),2)[/color]
$+(%,version.check,.,[color:red]$fulladdress)[/color]
They should
all be the same.
PLUS: There is an extra closing brace in the join event, so the ctcp event won't even be triggered.