Ich sag's doch:
korrekte Informationen helfen ungemein.
Es handelt sich also überhaupt nicht um ein DropDown-Menü, sondern um eine stinknormale
ComboBox.

Die Items der ComboBox kommen aus der ArrayList.
Seltsam kommt mir vor, dass Du in der set_dropdown-Methode die ArrayList neu deklarierst und erzeugst und durch Übergabe als DataSource willst, dass sie auch danach noch existiert. Das würde ich auf jeden Fall vermeiden; wenn die ArrayList im Formular insgesamt benötigt wird (nämlich als DataSource), sollte sie auch dort deklariert und erstellt werden. Nur das Zuweisen der Elemente würde in die set-Methode passen.
Wie gesagt, ich empfehle dringend,
List<string> stattdessen zu verwenden.
Zum eigentlichen Problem: Das ist dadurch vielleicht schon erledigt. Überprüfe
DropDownStyle; das kann sich mit der Zuordnung von DataSource "beißen". Wird im
SelectedIndexChanged- oder
SelectedValueChanged-Ereignis etwas festgelegt? Wenn beide Ereignisse fehlen, dann kannst Du SelectedIndexChanged einfügen, setze dort etwas ein, was wirklich ausgeführt werden muss, und setze dort einen Haltepunkt für den Debugger; dann kannst Du schrittweise prüfen, ob und ggf. wo SelectedIndex geändert bzw. zurückgesetzt wird.
Ralfs Hinweis hilft vermutlich nicht, weil die ArrayList keine "besonderen" Eigenschaften zur Verfügung stellt, sodass sowohl als DisplayMember als auch als ValueMember ToString verwendet werden dürfte. (Aber das ist wirklich nur eine Vermutung.)
Gruß Jürgen
PS. Schön, dass Du einen Monitor mit etwa 2000 Pixel Breite hast, sodass trotz Deiner Bilder horizontal nicht gescrollt werden muss. Ich kann die Beiträge jetzt nicht mehr vernünftig lesen (so etwas hält mich ebenfalls von Antworten ab).