I am not an expert on game Dev - just learning.
For me, I would keep it very easy - What Input do you need?
1. Select the Type of plant to place
2. Select a place where to place the plant
3. Confirm placement
1 - Plant select: How many variations are there? Is it less than 10 - Use number keys or more than 10 use < and > to make the selection
2- Placement WASD or arrow keys in fine
3- Confirm Placement - Enter or space
The main thing is to keep other keywords in mind - i.e. French keyboard does not have WASD close together.
Next is to make the key work faster - Are you using the func _input() ?
I would decouple the placement code and the type of plant selection . It kind feels like you processing all of them in the same loop - I can be wrong - Would be happy to look at the code if you want - Please see my GitHub page https://github.com/CollinViz/handofFate2