Hi josev,
This is a long story
I made several unsuccessfull attemps to build an acceptable balancing bot, both with Kalman or complementary filter; I finally gave up 6 months ago.
Reading, Dallaby blog gave me new ideas for the project, mainly for hardware (I was using continuous rotation servos).
Dallaby uses a single axis accelerometer which is OK small angles, together with a very simple and efficient code.
I chose the full blown path, but again, without visiting his site, I wouldn't be writing to you right now.

The above Kalman code is really convenient and self contained
Feed it with Acc angle, Gyro speed and loop time, it will spit back the filtered angle right away
Just make sure that data are scaled and your loop time is accurate/constant,
mine is running 100 Hz, see above "loop timing control".
Good luck, keep us informed