Оптимизируй код для этих двух файлов, удали лишнее и поправь то что нужно:
Form2.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using System.IO;
using System.Security.Policy;
using System.Diagnostics;
using AMH.BuyMenu.ItemsImage;
using AMH.Scripts;
using static AMH.BuyMenu.ItemsImage.Item;
using System.Globalization;
using System.Threading;

namespace AMH
{
    public partial class Form2 : Form
    {

        public Form2()
        {
            InitializeComponent();
            this.FormClosed += (sender, e) => Application.Exit();

            string imagesPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "BuyMenu", "ItemsImage");
            LoadImages(imagesPath);
            listView1.SmallImageList = imageList1;
            listView2.SmallImageList = imageList1;
        }

        private void LoadImages(string folderPath)
        {
            Items.PopulateListView2(listView2, imageList1);
            listView1.ListViewItemSorter = new SortList(1);
            listView2.ListViewItemSorter = new SortList(1);
            DirectoryInfo dirInfo = new DirectoryInfo(folderPath);
            if (!dirInfo.Exists)
            {
                MessageBox.Show($"Директория с изображениями не найдена: {folderPath}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            foreach (FileInfo file in dirInfo.GetFiles("*.png")) // предположим, что все иконки в формате PNG
            {
                try
                {
                    string key = Path.GetFileNameWithoutExtension(file.Name);
                    Image image = Image.FromFile(file.FullName);
                    imageList1.Images.Add(key, image);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ошибкка" + ex);
                }
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            TransferSelectedItems();
        }

        public static HashSet<string> AddedItems = new HashSet<string>();
        private void TransferSelectedItems()
        {
            if (listView2.SelectedItems.Count > 0)
            {
                // Создаем временный список, чтобы хранить элементы для добавления.
                List<ListViewItem> itemsToAdd = new List<ListViewItem>();

                foreach (ListViewItem selectedItem in listView2.SelectedItems)
                {
                    ListViewItem newItem = (ListViewItem)selectedItem.Clone();  // Создаем копию выбранного элемента
                    newItem.SubItems.Add("1");              // Подэлемент: Количество (начальное значение)
                    AddedItems.Add(selectedItem.ImageKey); // Добавляем ключ изображения в HashSet                                        // … подразумевается, что другие подэлементы уже были созданы ранее …

                    itemsToAdd.Add(newItem);               // Добавляем в список элементов для добавления
                    listView2.Items.Remove(selectedItem);  // Удаление элемента из listView2
                }

                // Добавляем элементы в listView1
                listView1.Items.AddRange(itemsToAdd.ToArray());
                listView1.Refresh(); // Обновляем listView1 для отображения изменений
                UpdateListView1(textBoxSearchListView1.Text);
            }
        }


        private void removeItem_Click(object sender, EventArgs e)
        {
            if (listView1.SelectedItems.Count > 0)
            {
                foreach (ListViewItem selectedItem in listView1.SelectedItems)
                {
                    ListViewItem newItem = new ListViewItem();
                    newItem.ImageKey = selectedItem.ImageKey; // Устанавливаем тот же ключ изображения
                    AddedItems.Remove(selectedItem.ImageKey);
                    // Следите за порядком subitems, он должен совпадать с заголовками столбцов в ListView2
                    newItem.SubItems.Add(selectedItem.SubItems[1].Text); // Название
                    newItem.SubItems.Add(selectedItem.SubItems[3].Text); // Категория
                    newItem.SubItems.Add(selectedItem.SubItems[4].Text); // Уровень
                                                                         // Так как в ListView2 нет столбцов для "Количество", "Зачарование" и "Качество", мы их пропускаем

                    listView2.Items.Add(newItem);

                    listView1.Items.Remove(selectedItem); // Удаляем элемент из ListView1
                }
            }
        }

        private void UpdateListView1(string searchText)
        {
            CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
            var filteredItems = new List<ListViewItem>();

            // Если поисковая строка пустая, добавляем все элементы, иначе фильтруем
            if (string.IsNullOrWhiteSpace(searchText))
            {
                foreach (ListViewItem lvi in listView1.Items)
                {
                    filteredItems.Add(lvi);
                }
            }
            else
            {
                // Поиск среди элементов, уже добавленных в listView1
                foreach (ListViewItem lvi in listView1.Items)
                {
                    string itemName = lvi.SubItems[1].Text; // Предполагается, что название предмета находится в первом подэлементе
                    if (itemName.IndexOf(searchText, StringComparison.OrdinalIgnoreCase) >= 0)
                    {
                        filteredItems.Add(lvi);
                    }
                }
            }

            // Обновляем listView1 только теми элементами, которые прошли фильтрацию или все, если searchText пустой
            listView1.BeginUpdate();
            listView1.Items.Clear();
            listView1.Items.AddRange(filteredItems.ToArray());
            listView1.EndUpdate();
        }
        private void UpdateListView2(string searchText)
        {
            CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;

            listView2.Items.Clear();
            foreach (var item in Items.ItemsList)
            {
                // Проверка, не был ли элемент добавлен ранее и соответствует ли запросу
                if (!AddedItems.Contains(item.ImagePath) &&
                    (item.Name.IndexOf(searchText, StringComparison.OrdinalIgnoreCase) >= 0 ||
                     item.RuName.IndexOf(searchText, StringComparison.OrdinalIgnoreCase) >= 0))
                {
                    ListViewItem lvi = new ListViewItem();
                    lvi.ImageKey = item.ImagePath;
                    lvi.SubItems.Add(item.GetNameByCulture(currentCulture));
                    lvi.SubItems.Add(item.Category);
                    lvi.SubItems.Add(item.Level.ToString());
                    listView2.Items.Add(lvi);
                }
            }
            listView2.Refresh();
        }


        private void textBoxSearchListView1_TextChanged(object sender, EventArgs e)
        {
            UpdateListView1(textBoxSearchListView1.Text);
        }

        private void textBoxSearchListView2_TextChanged(object sender, EventArgs e)
        {
            UpdateListView2(textBoxSearchListView2.Text);
        }
    }
}


Items.cs:
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
using AMH.BuyMenu;
using AMH.BuyMenu.ItemsImage;

namespace AMH.BuyMenu.ItemsImage
{
    public class Item
    {
        public string Name { get; set; }
        public string RuName { get; set; }
        public string Category { get; set; }
        public int Level { get; set; }
        public string Enchantment { get; set; }
        public string Quality { get; set; }
        public string ImagePath { get; set; }

        public Item(string name, string ruName, string category, int level, string imagePath)
        {
            Name = name;
            RuName = ruName;
            Category = category;
            Level = level;
            ImagePath = imagePath;
            Enchantment = "None";
            Quality = "Normal";
        }

        public string GetNameByCulture(CultureInfo ci)
        {
            if (ci.Name == "ru-RU" || ci.TwoLetterISOLanguageName == "ru")
            {
                return string.IsNullOrEmpty(RuName) ? Name : RuName;
            }
            else
            {
                return Name;
            }
        }
        public static class Items
        {

            public static void PopulateListView(ListView listView)
            {
                listView.Items.Clear(); // Очищаем listView перед заполнением.
                CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
                foreach (var item in ItemsList)
                {
                    ListViewItem lvi = new ListViewItem(); // Создание нового ListViewItem
                    lvi.ImageKey = item.ImagePath;         // Установка ключа изображения
                    lvi.SubItems.Add(item.GetNameByCulture(currentCulture)); // Название (учитывая текущую культуру)
                    lvi.SubItems.Add("1");                                  // Количество
                    lvi.SubItems.Add(item.Category);                        // Категория
                    lvi.SubItems.Add(item.Level.ToString());                // Уровень
                    lvi.SubItems.Add(item.Enchantment);                     // Зачарование
                    lvi.SubItems.Add(item.Quality);                         // Качество
                    listView.Items.Add(lvi);                                // Добавление элемента в listView
                }
            }

            public static void PopulateListView2(ListView listView, ImageList imageList)
            {
                CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
                listView.Items.Clear(); // Очищаем listView перед заполнением.
                foreach (var item in ItemsList)
                {
                    ListViewItem lvi = new ListViewItem(); // Создание нового ListViewItem
                    lvi.ImageKey = item.ImagePath;         // Установка ключа изображения
                    lvi.SubItems.Add(item.GetNameByCulture(currentCulture)); // Название (учитывая текущую культуру)
                    lvi.SubItems.Add(item.Category);                        // Категория
                    lvi.SubItems.Add(item.Level.ToString());                // Уровень
                    listView.Items.Add(lvi);                                // Добавление элемента в listView
                }
                listView.SmallImageList = imageList; // Присваивание списка изображений к listView
            }
            public static List<Item> ItemsList { get; } = new List<Item>();
            static Items()
            {
                Items.ItemsList.Add(new Item("Adept’s Arcane Staff", "Посох Адепта", "Staff", 4, "T4_MAIN_ARCANESTAFF"));
                Items.ItemsList.Add(new Item("Journeyman’s Arcane Staff", "Посох Подмастерья", "Staff", 3, "T3_MAIN_ARCANESTAFF"));
            }
        }
    }
}