I haven't used White, but I have used the native UIA libraries. The issue you'll occasionally run into with it is that you'll have an object that is clickable, but depending on how the click is being handled internally, you may not necessarily be able to use the InvokePattern to perform a click. That might be the case here.
As an alternative, you can use some code to move the mouse cursor over the AutomationElement and issue a click using P/Invoke. It's a bit of a hack, but it's often the simplest option when you run into this problem.
private const UInt32 MOUSEEVENTF_LEFTDOWN = 0x0002;
private const UInt32 MOUSEEVENTF_LEFTUP = 0x0004;
[DllImport("user32.dll")]
private static extern void mouse_event(UInt32 dwFlags, UInt32 dx, UInt32 dy, UInt32 dwData, IntPtr dwExtraInfo);
...
...
AutomationElement buttonToClick;
...
...
Cursor.Position = buttonToClick.GetClickablePoint();
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, new IntPtr());
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, new IntPtr());