z.infer<typeof schema> will always resolve to the output of the provided zod schema (z.output<typeof schema>). Using z.input<typeof schema> i.e. useForm<z.input<typeof schema>>(...) will resolve to your expected types.
z.infer<typeof schema>
z.output<typeof schema>
z.input<typeof schema>
useForm<z.input<typeof schema>>(...)