I know this is old, but I had this issue and found a fix - it appears that a connection was loose. Smacking the phone on my palm would sometimes get the vibration to work once or twice. But, I used the HTC Help diagnostic to keep it vibrating, and I smacked the phone volume buttons-side down until I felt it vibrate, then I smacked it a few times after that in-between vibrations. If I only did it once, I could feel the vibration get weaker the 2nd time, and then stop as if something came loose again. But, smacking between vibrations seems to have locked it back in (at least for now).