As pankaj mentionned, you need a seperate "hub" for each device. The behavior you are describing points towards only having one USB hub. Usualy, if you have 3 USB ports, you will only have 1 HUB, and 99% of laptops won't have more than 2.
I have two hubs and it works fine when I use seperate ones, but I get the same results as you if I plug two devices into the same HUB.
Also note that you cannot have seperate skeleton information (User generators will be the same) if you two devices are running on the same process. To get distinct skeletons, I found that a client-server architecture is the easiest and most flexible solution. Then you can even have as many devices on as many different computers as you want!