Running multiple Appium instances for Windows to automate multiple devices simultaneously

I have done a bunch of research on running scripts on multiple devices simultaneously. From my understanding, you need to have at least two instances of Appium servers running with different ports. From here, the code should point to the different servers and it should work. However whenever I do this, only one of the devices runs correctly while the other stops/freezes.

I am using a Windows machine and am using the Appium program rather than through NodeJS. I would open two instances of this program and followed the logic above.

Here is an example of the java code creating the different servers:

if (parameter.equals("6"))
	{
		/*
		 *  Capabilities for Galaxy S7
		 */
		version = version6; 
		udid = udid6;
		deviceName = deviceName6;
		
		// New capabilities
		capabilities = new DesiredCapabilities();
				
		// Requires changes here if using a different device
		capabilities.setCapability(CapabilityType.VERSION, version);
		capabilities.setCapability("udid", udid);
		capabilities.setCapability("deviceName", deviceName);
		capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");
		capabilities.setCapability("platformName", "Android");
		capabilities.setCapability("newCommandTimeout", 600);
		
		// App declarations. Need to update if testing different browser
		capabilities.setCapability("appPackage", appPackage);
		capabilities.setCapability("appActivity", ".ui.activity.LaunchActivity");
		capabilities.setCapability("appWaitActivity", ".ui.activity.BrowserActivity");		 

		// Create a RemoteWebDriver, the default port for Appium is 4723
		driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
	}
	else if (parameter.equals("5"))
	{
		/*
		 *  Capabilities for NOTE 5
		 */
		version = version5; 
		udid = udid5;
		deviceName = deviceName5;
		
		// New capabilities
		capabilities = new DesiredCapabilities();
				
		// Requires changes here if using a different device
		capabilities.setCapability(CapabilityType.VERSION, version);
		capabilities.setCapability("udid", udid);
		capabilities.setCapability("deviceName", deviceName);
		capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");
		capabilities.setCapability("platformName", "Android");
		capabilities.setCapability("newCommandTimeout", 600);
		
		// App declarations. Need to update if testing different browser
		capabilities.setCapability("appPackage", appPackage);
		capabilities.setCapability("appActivity", ".ui.activity.LaunchActivity");
		capabilities.setCapability("appWaitActivity", ".ui.activity.BrowserActivity");		 

		// Create a RemoteWebDriver, set the server to be different from the others
		driver = new RemoteWebDriver(new URL("http://127.0.0.1:4725/wd/hub"), capabilities);
	}

Any advice or suggestions would be appreciated, I have been stuck on this for a while. I am currently only attempting to run the same java code on 2 devices for now.