I am assuming that you could have made this changes. But I am just going through over to double check if there is something wrong(finding where the issue is basically).
Have you made the changes in the json file in your remote machine and add opera with the number of instances you want and the operating system(in your case it is WINDOWS) and launch the node with -nodeConfig webconfig.txt and see if the node is listening to your hub.
This is the code I have used and I could launch opera into a remote Mac machine.
System.out.println("Launching Opera");
opcapabilities=DesiredCapabilities.opera();
opcapabilities.setBrowserName(DesiredCapabilities.opera().getBrowserName());
opcapabilities.setPlatform(org.openqa.selenium.Platform.ANY);
The last thing you want to do is launch the opera browser manually in your remote machine and see if launches.
Follow this steps and see if it works. Let me know if there is any error.
I am also assuming that you have made the changes in the TestNG.xml file.
Cheers