First of all, are you certain the subroutine is being called in the Main Routine? Have you gone online to see what happens?
I've been programming PLCs for many years and have never tried to use a conditional RET. It seems to me to be very poor programming practice. I see in VisiLogic Help that it is allowed, though I recommend against it. Just my opinion, but I consider conditional subroutine Calls and Returns to be avoided if at all possible. It makes the program much easier to understand and troubleshoot and avoids zombie coils.
Additionally, though this is not related to your problem, you have two logic threads in each of Rungs 4 & 5. Don't do that. Separate them out into two rungs each.