Improvements for ugly reflection
I'd group your code to make it more readable. Something like this:

fun getGson(): Field {
    val fGson = NBTReflectionUtil::class.java.getDeclaredField("gson")
    fGson.isAccessible = true
}

fun removeFinalModifier(field: Field) {
    val modifiersField = Field::class.java.getDeclaredField("modifiers")
    modifiersField.isAccessible = true
    modifiersField.setInt(fGson, fGson.modifiers and Modifier.FINAL.inv())
}

// etc