không phải do code bị gọi 2 lần, mà
Tìm ra rồi — không phải do code bị gọi 2 lần, mà là ContextMenuStrip đang bị dùng chung giữa tagGauge3 và 1 control khác (chắc do lúc kéo-thả/copy control trong Designer, VS gán chung 1 contextMenuStrip1 cho cả hai). Khối 2 ("Vị trí kích thước...") chính là menu gốc kiểu cũ của control kia, bị cộng dồn vào chung menu với tagGauge3.
Cách sửa chắc chắn nhất là ở code: bắt control tự kiểm tra và luôn sở hữu riêng 1 ContextMenuStrip của chính nó, bất kể Designer trót gán chung:

