The issue isn't with VtValue itself. We were calling GetLightParamValue(), which does some additional steps before returning the value. Including throwing away types it doesn't recognize. Calling Get() avoids those extra steps and solves the problem in this case.