In Chaucer and John Donne "was" is pronounced like "wahss" but nowadays we say "woz". When did the change occur? and why?
Perhaps my Google-fu is lacking, but I am finding it exceedingly hard to find any actual, relevant sources for this; but I’ll answer nonetheless.
Some time during the 17th century, a sound change occurred in English that rounded the short vowel /a/ when it directly follows a labialised sound (/w/ or /kʷ/ [written ‹qu›]).
In general, the change meant that /a/ (probably pronounced [ɑ] at the time) became [ɒ] (or [ɔ], as is most common in American English today—I don’t think anyone knows what the exact quality of the vowel was back then) after labialised sounds, except if followed by a velar (/k/, /ɡ/, /ŋ/) or bilabial (/p/, /b/, /m/), in which case it was fronted to [æ] instead.
In other words (with some later changes, like the automatic lengthening of /a/ before voiced plosives and the widespread, though not ubiquitous, deaspiration of /ʍ/ to /w/):
ɑ > æ / w kʷ ⸏ k ɡ ŋ p b m
whack [ʍɑk] > [ʍæk] (> [wæk])
quag [kʷɑɡ] > [kʷæɡ] (> [kʷæːɡ])
quank [kʷɑŋk] > [kʷæŋk]
ɑ > ɒ / w kʷ ⸏ [elsewhere]
was [wɑs] > [wɒs] (> [wɒz ~ wəz])
want [wɑnt] > [wɒnt]
what [ʍɑt] > [ʍɒt] (> [wɒt])
wad [wɑd] > [wɒd] (> [wɒːd])
wap [wɑp] > [wɒp] *
wabble [ˈwɑb(ː)l̩] > [ˈwɒbl̩] (now written ‹wobble›)
war [wɑɹ] > [wɒɹ] (> [wɒːɹ, wɒː])
* Not to be confused with WAP (Wireless Application Protocol), which is obviously a much newer one—and one that proves that this sound change is no longer productive, since it is pronounced [wæp], not [wɒp].