From your description, I believe your problem has something to do with switch debouncing issue. Google "switch debouncing" if you don't know what I'm talking about. Most likely it's due to a poorly designed hardware or/and poorly written firmware. You might be able to fix it by using a couple of capacitors + diodes.
Good luck.