Its a plain old ulcer (or canker- whatever you call americans call it).
Its unlikely you have a lack of B12- unless youre a vegetarian. Its more likely you got it from accidently biting yourself, brushing too hard, scratches from braces or 'just going through growing up'.
Simply use an ulcer gel to remove it. If you dont want to buy them (theyre not very cost effective, since you wont use much or got many ulcers) simply make sure you keep the area free from infections and clean to speed up healing. Eg Rinse with mouthwash, salt water, baking soda etc.
Oh and dont put your tongue on it. You can pull and damage the healing tissue away from it as well as transfer bacteria into the wound.
Your other symptoms sound like a plain old reaction (like flu/colds/hayfever) and is probably unrelated to the ulcer, but it means your immune system will be working harder than usual, so make sure you wash your mouth.
EDIT: Oh and DO drink/eat oranges and lemon juice. Theyre good for you and the acidity level is harmless (but not to bacteria).