Возможно, что исполняемый файл действительно содержит несколько сервисов. В таком случае у вас будет ServiceInstaller, представляющий каждую службу, но один ServiceProcessInstaller, представляющий исполняемый файл.
Каждый сервис реализован (в .NET) как отдельный класс. Но несколько сервисов (если они все запущены) совместно используют домен приложений (я полагаю). Вероятно, вам достаточно редко требуется такая настройка, и в большинстве случаев между исполняемыми файлами и службами существует сопоставление 1-1 (поэтому в исполняемом файле будет только один ServiceInstaller и ServiceProcessInstaller).