It seems UIPlaySound with the "OnMouseOver" doesn't trigger when the button is selected - and there doesn't appear to be an option to enable this that I can see.
Here's the fix I employed, which mirrors the functionality in UIButtonColor:
protected virtual void OnSelect (bool isSelected)
{
if (enabled && (!isSelected || UICamera.currentScheme == UICamera.ControlScheme.Controller))
OnHover(isSelected);
}