Someone may correct me on this...maybe not. When a unit starts as a mission loads, it already has a waypoint value of "0" which is the spot it starts at on level load, whether it was given an editor placed waypoint or not. So in theory, an editor placed waypoint with a number of "0" is actually "1". Try changing all your numbers up by a unit of "1" in your setwppos script. If it's 2 change it to 3 and see what happens.
#loop
[BMP, 2] setWPPos getPos Dave
[BMP_1, 2] setWPPos getPos Dave
[BMP_2, 2] setWPPos getPos Dave
[Searchopper1,3] setWPPos getPos Dave
~60
goto "Loop"
==========================================
Try this instead-
#loop
[BMP, 3] setWPPos getPos Dave
[BMP_1, 3] setWPPos getPos Dave
[BMP_2, 3] setWPPos getPos Dave
[Searchopper1,4] setWPPos getPos Dave
~60
goto "Loop"
=======================================
Don't ask my why, but this actually worked for me in a mission I was working on. Go figure ??