Your stampy code worked well, at slow speeds just like in your videos. We had a time restrictions, so we had to crank up the travel speeds (300 mm/s and faster), and at that speed, the robot would start behaving erratically, miss objects, turn the wrong way etc. We tried tweaking scan resolutions, timer and everything we could.
We ended up using one of the hardware PWM channels on the command module (atmega 168) and the IR servo worked fine after that, and we upgraded the Sharp IR to the bigger model that can scan father out. The code i ended up writing for the scanning algorithm worked better at high speeds by breaking up the field in front of it into zones, and as an object moved into different zone relative to the robot, the driving program would change (different speeds and turning delays). It would also ignore all contacts except for the closest one.
Your tut on stampy was great and taught us a lot, but it just wasn't able to do what we wanted.