Many to one reductions from undecidable Turing Machine to a decidable language
From what I read, a many-to-one reduction $A \leq_m B$ means that $\forall x \in A$, there exists a computable function $f$ s.t. $f(x) \in B$.


No. It's not "for each element $x\in A$ there exists a computable $f$ ...", but "there exists a computable total $f$ s.t. for each $x\in A$ we have $x \in A \iff f(x) \in B$".

Your definition is wrong because: 


it allows us to pick a different function for each $x\in A$, when we must pick only one;
it only states $x\in A \implies f(x)\in B$, when we need the double implication $\iff$;
$f$ must be total (maybe this is supposed to be implicit when you don't say "partial", but it's important)



  However, $f$ is not necessarily surjective (i.e. not all elements in $B$ have to be mapped). 


Correct.


  Where $f$: On input $(i,w)$, if Turing Machine $i$ accepts $w$, then a Turing Machine $M$ outputs a Graph $g$ that has a 2-vertex cover (any arbitrary graph with a valid 2-node vertex cover), and does otherwise.


How do you check that TM $i$ accepts $w$? I guess you are simply suggesting to simulate TM $i$. If you do that, there is a possibility of non termination here: precisely, every time $i$ diverges. Hence, $f$ is not total in this case: since its implementation diverges on some inputs.