You probably have a driver problem, but in the chance that it's a config problem you can mess around with xinput.
First, open a Terminal. List your input devices:
# show all input devices
You'll get something like this:
$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Microsoft Natural® Ergonomic Keyboard 4000 id=11 [slave pointer (2)]
⎜ ↳ Evoluent VerticalMouse 4 id=12 [slave pointer (2)]
I have an Evoluent VerticalMouse. You can see the identifier number is 12: "id=12".
I can test my mouse with:
# show all input from device with identifier number 12
xinput test 12
Now when I move my mouse or click, I get output in that terminal telling me what happened. Hit Ctrl-c to end the test.
You can reset your button map to the default with set-button-map. Note that I'm using my device name that was output by
xinput set-button-map "Evoluent VerticalMouse 4" 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Now try running
xinput test with your id. If you're getting correct button responses here, then your xorg config was incorrect. (I don't know how to fix that yet -- I think you need to edit your xorg.conf to save the above settings. Looks like there's more info here.)