Your kernel headers for kernel 3.10.0-229.el7.x86_64 cannot be found

The solution is likely to be found at this question the short version being, run

sudo yum install "kernel-devel-uname-r == $(uname -r)"

That will install the kernel headers for the version of the kernel you are currently running.

I suspect that at some point you did a yum update or similar, and that actually installed a new kernel, but you have not yet started running it. What is probably happening is that when you do the yum install steps in your question it is looking at the latest installed version and getting the headers for that. Howerver, when you start vboxdrv it looks at the running kernel and tries to find the headers for that.

Your running and installed kernels are out of sync (which isn't normally a huge problem), but you found a case where it matters.