I'm at work so I'll keep this short. Let me know if you want me to expand on any of this later.
#How (a.k.a. tl;dr:)
<j> existed as a variant form of <i> before it was given status as its own letter. It was made separate to mark a consonant version if the sound represented by <i>.
<v> was the original form of <u> in Latin inscriptions, and <u> came up as a variation of the same letter.
<w>, alternatively <ɯ>, is a slightly different story, but was adopted through writing two <u>'s or <v>'s to mark a separate consonantal form of /u/ after the <v> symbol came to represent the modern /v/ sound instead of the older /u/ sound.
#Who
Credit for some of the changes should really go to Giovan Giorgio Trissino, a Renaissance era man of many interests, one of which included linguistics. One of the things he did was advocate for spelling/orthography refom in an essay titled Ɛpistola del Trissino de le lettere nuωvamente aggiunte ne la lingua Italiana. You might have noticed a few odd letters in that title. In it he introduced "new" letter forms to encode various sounds that he felt it was worth being able to distinguish in writing. Some of these, like <ɛ> (for the vowel sound in "bed") have been adopted into the International Alphabet in use by linguists today. Many have not.
It was Trissino who pushed for <j> and <v> as separate letters from <i> and <u>.
<w> is another story, and goes back a bit further but with similar intent. Earlier Germanic languages would be written with the letter <ƿ> for what we now write with <w>. In the past, Latin's <v> would have a sound like /w/ or /v/, but since languages are always changing, this sound changed to something like [β] or [ʋ] or [v] (different v sounds). Because of this change it was odd to then use <v> to represent the /u/ sound, so the use of doubling that letter to distinguish /v/ from /u/ came into use. Eventually <uu> and <vv> came to be written <w>, and <ƿ> was replaced.
note: angle brackets <> represent written letters instead of sounds. // and [] represent the sounds, but not how they're written. Don't worry about the difference between [] and //; it's not super relevant for this question.