Is there a way (other than running it several times) to say "give me all the granules that match the input date/time/lat/lon regardless of satellite"?
To answer your first one: unfortunately, no, due to the way satellite granules and product suites are broken up, there can be multiple satellite granules that match a single station or row of data. My best solution for you would be to break your SeaBASS file up into multiple smaller files with fewer stations per file to reduce the output/number of granules returned.
Regarding your second question: the fd_matchup.py script relies on the NASA Earthdata search common metadata repository API as its back-end to locate matching granules, given time and location targets. The way that API works does not allow for multiple satellites to be queried simultaneously, as it does for product suite (IOP, OC, SST, etc). My best solution for you here would be to write a simple loop in Python (or Matlab) to call fd_matchup.py, looping over a list of satellite key names ['modisa', 'modist', 'viirsn', 'viirsj1']. This can be useful to call with the --get_data [download_dir_path] option to save all identified files from successive calls to a specified local directory.