Battlefield seems to have trouble processing 8,000Hz keyboards. Even if the keyboard is set to 1,000Hz in software settings, the PC's USB host controller will still poll it at 8,000Hz.
Setting the keyboard to 1,000Hz in software settings only affects the response rate of the keyboard. Meaning the PC's USB host controller is still polling the keyboard at 8,000Hz, but the keyboard is only responding at 1,000Hz.
The 8,000Hz keyboard polling rate messes with Battlefield's input processing code causing it to drop inputs. The two ways I know of to get the PC's USB host controller to poll the keyboard at 1,000Hz is plugging the keyboard into a USB 2.0 hub and then plugging the hub into the computer (easiest method). The USB hub will force the PC's USB host controller to poll it at 1,000Hz since that's the hub's maximum polling rate, causing the keyboard to also be polled at 1,000Hz since it's communicating through the hub.
The other method is downloading LordOfMice and downclocking the keyboard to 1,000Hz. This method modifies the Windows USB host controller drivers to poll certain hardware at a selected polling rate.
https://github.com/LordOfMice/hidusbf