I don't think English /o/ came from PG */ei/. However, many Modern English words with /o/ ultimately came from PG */ai/. In PG */ai/ went to Old English /a:/. Later on this /a:/ in English would become /o/.
Proto Indo European: *kei-, *stai-
Proto Germanic: *khaimaz, *stainaz
Old English: ham, stan [ha:m] [sta:n]
Modern English: home, stone [ho(ʊ)m] [sto(ʊ)n]
As far as I know, PG */ei/ did not lead to /o/ in English. Also, perhaps maybe your question shouldn't be "why" but "how"--(and of course as I explained above it didn't really happen this way).
In terms of "how" /a:/ went to /o/, such things are quite common in languages, since vowels tend to move around over the ages. For instance, observe the much earlier merger of Proto Indo European */a:/ and */o:/ to Proto Germanic /o:/. Compare the related words in different Indo-European languages:
Proto Indo European */a:/
--Latin frater (with /a:/)
--Old English broðer (with /o:/)
Proto Indo European */o:/
--Latin flos (with /o:/)
--Old English bloma (with /o:/)
Proto Germanic also merged Proto Indo European */a/ and */o/ to /a/.
'Twas brillig, and the slithy toves did gyre and gimble in the wabe.
I eat prescriptivists for breakfast.
maɪ nemz kʰɜ˞kʰ n̩ aɪ laɪk̚ fɨˈnɛ̞ɾɪ̞ks