This may not solve much, but I suggest moving your button code into teleopInit(), otherwise you are creating buttons in a loop during teleop.
Also, have you tested your commands without the buttons? The issue may be that your commands are not working, not the buttons. To do this in Java, you can add
Code:
SmartDashboard.putData(new Command());
into your robotInit(). Then open up SmartDashboard from the driver station or a double-clicking on the program. You should see a button on the Dashboard after you compile that code. Click it to run, and click it again to cancel.