To me, there is a difference between "vouch" and "guarantee".
To vouch for someone, you are stating that because of your relationship, you have knowledge that their character is good. However, I think if I introduce you to someone and vouch for them, I am leaving open the possibility that you and that person might not get along for whatever reason.
To guarantee someone, to me, means that I am 100% assuring you of their future actions. So if I guarantee that my friend can fix guitars, and you go to him to have your guitar fixed, and he fails, I know you might come to me and be angry about it.
I believe vouching is about character, and guaranteeing is about actions. It's possible to vouch for someone's character without guaranteeing what they'll do, and it's possible to guarantee what a person might do without necessarily knowing their broader personality (for example, I might be able to guarantee the guy at the guitar shop always fixes guitars, but I don't hang out with him, so maybe he's a jerk.)
However, recently when trying to translate the concept of "vouch" into Japanese, it became apparent to me that some people do not make this distinction. The Japanese language itself does not distinguish between vouch and guarantee either. So it became unclear if my definition was a personal one.
Is there a difference, is it wide enough, and is it commonly accepted?