We have a PS program split across a dozen or so Lisp files and a "compiler" (really just a build script in the form of a CL function) that processes each file by binding *PARENSCRIPT-STREAM*, reading in PS forms from the top level of the file, and calling PS* on them to create a .js file.
Have you tried ps-compile-file to do this, and if so, how did it fall short of doing what you wanted done?
Vladimir