When the leftmost side of a UiButton is directly adjacent to the horizontal center of the screen, and the mouse is moved left over the center of the screen in one frame, MouseLeave will not fire. MouseEnter will not fire on subsequent re-entry of the button.
If the left side of the button is to the right of the center, the bug will only occur if the mouse is moved left fast enough to cross the center within one frame. If the mouse is moved back to the right half of the screen without touching the button, the button will no longer be highlighted.
If the left side of the button is to the left of the screen’s center, the bug will not occur at all.
I just found it occurs on the opposite side as well, although for me the button needs to be moved an extra pixel to the left, so initially i thought that it didn’t occur on the opposite side (think this is just an artifact of my screen resolution in studio though)
If you are using a SurfaceGui (You never mention it, but going to state it anyways) it shouldn’t be parented to the object. Instead you should parent it to the PlayerGui and adornee it to the object. This helped ShoesForClues above me.