I have never specified SetLibraryList () with an array variable definition, and I've used this function quite often.
I have always built a string with the PBLS required, then specified that one string as the parameter to the function.
Example: ls_libraries = "library1.pbl, library2.pbl, library2.pbl, .....libraryN.pbl"
OR ls_libraries = getlibrarylist ()
ls_libraries =ls_libraries + "library1.pbl, library2.pbl, .....libraryN.pbl
THEN SetLibraryList (ls_libraries)
With this technique, I've never reached any size limitation of the function.
Try your code in this manner:
Create your array as usual
Create a master string to hold the final library list: ls_libraries
Populate your array
Using the TRIM function, copy the data from the array into the string "ls_libraries"
Use the string "ls_libraries" as the parameter to the SetLibraryList() function ---> SetLibraryList (ls_libraries)