VTK Crash on startup with CLR

I have a Visual C++ program, Visual Studio 2019, WinForms and am trying to add in VTK. I have two projects. One is the CLR project that does the WinForm UI called ORIScanUI, and a second project that does the unmanaged code (VTK, VC, PCL) is called ORIScan. I have VTK 9.0.1 source and it builds fine with CMake making the visual studio project and then Visual studio builds the VTK binaries. All the include paths in my project are correct and linking in the .lib and finding the .dlls works fine.

It crashes on startup before any windows show up on the screen.

Exception thrown at 0x00007FF9E8214350 (ntdll.dll) in ORIScanUI.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.

And the stack is
ntdll.dll!RtlValidateHeap() Unknown
KernelBase.dll!HeapValidate() Unknown

ucrtbased.dll!_CrtIsValidHeapPointer(const void * block) Line 1407 C++
ucrtbased.dll!_msize_dbg(void * block, int block_use) Line 1059 C++
ucrtbased.dll!_recalloc_dbg(void * block, unsigned __int64 count, unsigned __int64 element_size, int block_use, const char * file_name, int line_number) Line 784 C++
ucrtbased.dll!_register_onexit_function::__l2::() Line 112 C++
ucrtbased.dll!__crt_seh_guarded_call::operator()<void (void),int (void) &,void (void)>(__acrt_lock_and_call::__l2::void (void) && setup, _register_onexit_function::__l2::int (void) & action, __acrt_lock_and_call::__l2::void (void) && cleanup) Line 204 C++
ucrtbased.dll!__acrt_lock_and_call<int (void)>(const __acrt_lock_id lock_id, _register_onexit_function::__l2::int (void) && action) Line 975 C++
ucrtbased.dll!_register_onexit_function(_onexit_table_t * table, int()() function) Line 149 C++
ORIScanUI.exe!_onexit(int(
)() function) Line 267 C++
ORIScanUI.exe!atexit(void()() function) Line 275 C++
ORIScanUI.exe!`dynamic initializer for ‘vtkDebugLeaksManagerInstance’’() Line 46 C++
[Managed to Native Transition]
ORIScanUI.exe!_initterm(void (__cdecl
)()* pfbegin, void (__cdecl*)()* pfend) Line 127 C++
ORIScanUI.exe!::LanguageSupport::InitializeNative() Line 360 C++
ORIScanUI.exe!::LanguageSupport::_Initialize() Line 599 C++
ORIScanUI.exe!::LanguageSupport::Initialize() Line 806 C++
ORIScanUI.exe!.cctor() Line 857 C++
[Native to Managed Transition]
[Managed to Native Transition]
[Native to Managed Transition]
mscoreei.dll!_CorExeMain() Unknown
mscoree.dll!_CorExeMain_Exported() Unknown
kernel32.dll!BaseThreadInitThunk() Unknown
ntdll.dll!RtlUserThreadStart() Unknown

It appears the problem is in vtkDebugLeaksManagerInstance
My minimal test code does not even do anything. Simply including the
#include “vtkClipClosedSurface.h”
all by its self causes the crash. I assume VTK is starting up static functions and that causes the crash.
If I make a super simple Visual C++ console app so there is no CLR and no managed code, it starts up fine.

Any ideas?