Wenn Du an den Fuses nix gemacht hast, läuft der mit 1MHz.

Den AVR interessiert es überhaupt nicht, was Du in deinem Programm bei $crystal hinschreibst, das ist nur für Bascom intern um die Zeiten auszurechnen, wenn zB. Wartezeiten für Waitms usw. berechnet werden.
Also das bei Waitms 100 auch 100ms gewartet werden und nicht irgendwas anderes, was bei Dir jetzt anscheinend passiert ist, weil der Wert mit der echten MHz nicht zusammengepasst hat !