I suspect you link may be contented (shared) to some ratio; usually 1:8 or 1:10 or 1:20. Depending on the usage of the other users (contentees) on the link, speeds can tend to jump up and down from time to time. If it is not a contented link, then you need to have a chat with Safaricom.

I have used their service on Fixed data and they are quite good.