Here's how it evolved:
* Latin "avus": meaning "grandfather"
* Vulgar Latin "avulu": a variant of "avus"
* Old Spanish "abuelo": derived from "avulu"
* Modern Spanish "abuelo": meaning "grandfather"
The "b" in "abuelo" is a result of a sound change that occurred in the evolution of Spanish from Latin.