Well i'm still having problems on my machine, same animation error problem. However I've recently discovered that vmware player/workstation can emulate DX9, so well infact that I could run skyrim/portal 2/stronghold 3/STALKER and a host of other games in a windows XP VM at high with an acceptable framerate.
However I can run your program under the virtual machine. It takes a bloody long time to load the level (about 2 minutes) but it works. Sorry to pick at it but there's 1 thing that bugs me regarding most DB/DBPro coders habits, your diagonal movement speed

you need to multiply it by 0.707 when using 2 adjacent keys such as w+a or w+d
i.e. here's the marine movement function from my project which allows both keyboard and 360 controller movements
Function MovementVelocity(unit,axis$)
// X# and Y# are intended maximum movement speeds, can be set manually in place of Marine().Speed
x#=(Marine(unit).Speed/1000.0)*(hitimer(1000)-GameTimer(0))
y#=(Marine(unit).Speed/1000.0)*(hitimer(1000)-GameTimer(0))
xcount#=0.0
ycount#=0.0
count#=1.0
result#=0.0
Inc xcount#,keystate(32)
Dec xcount#,keystate(30)
Inc ycount#,keystate(17)
Dec ycount#,keystate(31)
If xcount#<>0 And ycount#<>0 Then count#=(abs(xcount#)+abs(ycount#))*0.707
If axis$="x" Then result#=(x#*xcount#)/count#
If axis$="y" Then result#=(y#*ycount#)/count#
If Xb360 Controller Connected(0) And result#=0.0
ix#=xb360 thumb right x(0)
iy#=xb360 thumb right y(0)
Xb360 Poll 0
A2text Verdana(12),0,200,"Left/Right:"+str$(xb360 thumb left x(0)/32767.0),rgb(255,255,255)
A2text Verdana(12),0,220,"Up/Down:"+str$(xb360 thumb left y(0)/32767.0),rgb(255,255,255)
Inc xcount#,xb360 thumb left x(0)/32767.0
inc ycount#,xb360 thumb left y(0)/32767.0
If axis$="x" Then result#=(x#*xcount#)
If axis$="y" Then result#=(y#*ycount#)
If ix#<>0 And Xb360 Thumb Right X(0)=0 or iy#<>0 And Xb360 Thumb Right y(0)=0 then position mouse screen width()/2,screen height()/2
Endif
Endfunction result#
It's called in the format MovementVelocity(object number,"X" or "Y") and is called twice, once for the X axis once the for Y/Z axis. Limits diagonal speed so that you can't run faster diagonally