Since nobody answered yet, I am trying to answer at least partially.
I think if you can pass a set to a subroutine depends on the type of subroutine you are using. I am pretty sure it isn't possible for UMAT for example, because this subroutine is called at every material point individually. So it would make no sense to pass a set.
For UFIELD, i.e., user defined fields for example and others it might be possible. I found this short thread here: https://www.eng-tips.com/viewthread.cfm?qid=373907
You might also want to have a closer looks at the manual, e.g., http://dsk.ippt.pan.pl/docs/abaqus/v6.13/books/sub/default.htm and especially look into utility routines as they might help too.
I am sorry that I can't give a definite answer as I never had to pass sets into subroutines so far. However, I am pretty sure it should work for subroutines where it makes sense.