Maire- aine, it may have to do with phonetics. The examples you mentioned - keep, sweep etc., all end in an unvoiced consonant (place the palm of your hand over your throat and say 'p' 'k' 's' 'or 't' - be careful not top add vowels while doing this: if 'p' sounds like 'puh' or 'pee' while you're saying it, you've added a vowel. Now try doing the same with 'b' 'z' 'g' or 'd' - the latter should sound with an accompanying buzz / vibration - these are voiced consonants).
The general rule is that unvoiced consonants are followed by unvoiced consonants in regular verb 'ed' endings when pronouncing: that's why the 'ed' in Kicked, washed and stopped sounds like a 't' (Kikt, washt, stopt). After voiced consonants the 'ed' sounds like a 'd' - that's why moved, buzzed and gagged 'ed' sounds like 'd' (moovd, buzzd, gaggd).
I think the same thing is happening here, not only in the sound but also the spelling -
keep / sweep / creep - kepT, swepT, crepT
compare Terry McDonald's
speed, seed, weed
Two of these are the infnitive forms of these verbs, and they are regular verbs so the past tense is formed by added 'ed'
seeded, weeded. These are pronounced with 'ed' as an extra syllable - seed'd / weed'd (and that;'s how they were written in Shakespearean times as well)
The first is irregular, the past is formed
speed - sped. But the infinitive form ends in 'd' - a voiced consonant.