I have never played a shaman, but if it's a true weapon enchant like Feedback or poisons, check out GetWeaponEnchantInfo():
http://www.wowwiki.com/API_GetWeaponEnchantInfo
You may be able to use it in place of checking for normal buffs.
In what you posted above, you have:
WBuffTimer = GetTime();
Rebuff = 1;
So when you initially move, Rebuff < WBuffTimer so it runs:
WBuffTimer = GetTime();
Rebuff = (WBuffTimer + 290);
WBuff_Cast()
But after that, Rebuff will never be less than WBuffTimer again. You'll want to move WBuffTimer to before the "if" statement. so it's like:
WBuffTimer = GetTime();
if something then
-- stuff
elseif not found1 and AutoAllBuff and not mounted and not shapeshifted and (Rebuff < WBuffTimer) then
Rebuff = (WBuffTimer + 290);
WBuff_Cast()
end
But I'd check out GetWeaponEnchantInfo() it may be a better route.