You're doing it just fine, but you are running into a bug with EUO itself.
There was a time when you could step through called scripts back in EUO v1.42. But when they pushed everyone over to the never finished 1.5, they introduced that bug.
So it makes debugging called scripts difficult. Actually, by using the called-interface, you can actually copy the subroutines into the main script, and debug everything en-mas. When you get it working, then you can replace your gosubs with calls without affecting your argument count or placement.