Current reconstructions of the nominal declension of Proto-Indo-European usually have *-es as the ending of the genitive singular of consonant stems. I contend that this ending was actually *-os.
As far as I can tell, there are two reasons why linguistic experts mistakenly believe that the genitive singular ending of consonant stems in PIE was *-es instead of *-os.
First, the genitive singular of most Germanic nominals, consonant stems as well as a-stems, has the ending –es. But rather than continuing an original PIE *-es, this is actually derived from the PIE genitive singular ending of the o-stems: *-os-jo. This *-osjo ending became *-asja in Proto-Germanic, this then becoming *-esja due to the –j-, after which the –ja element was dropped, leaving –es. At some point in this development, this originally o-stem ending was extended to the consonant stems. This same development is seen in the demonstrative pronoun *þes (> English this) which derived from an original PIE *tosjo through *þasja > *þesja – Gaulish sosio is obviously cognate (but with s– instead of t-).
Second, the genitive singular of Latin third declension nominals consistently has the ending –is, this presumably continuing PIE *-es. But this –is ending is actually derived from an original PIE *-os through the expected shift to *-us followed by a further shift to –is. The fact that –u– often shifted to –i– in Latin should be obvious enough. Some words in which this occurred are: religiō from *relugiō (cf. Celtic *lugjon ‘oath’), lacrima from *lacruma (from earlier *dakruma), and tībia from *tūbia (this from *tuk-bia – cf. Germanic *þeuhą from *teukom (> English thigh)). [By the way, some Latin nominative singulars ending in –is may have ended in *-os originally (as well as *-us), particularly in cases where all cognates have reflexes of an original *-os (or *-us) instead of *-is.]