To what degree enums will slow down pathfinding that is an empirical question, and the decrease in efficiency will probably be small enough that you will not notice it in your game. However for my toolkit I’m trying to make my solutions both as efficient and flexible as possible to accomodate for as many types of games as possible. If your game does not use units with extremely levels of move/turn it is unlikely to be a problem for you to implement it this way.
Just so I’m sure you understand what I mean when I talk about multiple tile units I’ve thrown together a quick demonstration in Excel:
The green squares represent a large unit occupying a 4*4 space. When the unit moves it only checks the top left index it is occupying (the red square) against the pregenerated array for large units (represented by the numbers). So if the unit tries to move straight right it checks the index to the right of the red square. If the number in the array is equal to or smaller than the size of the unit it allows movement to this tile. Height should work similarly to this, but difficult terrain is more difficult If I do not think of something more clever one could do a similar array for higher movement cost, though I think it would have to be either a separate array for each unit size category or a similar solution using a nested array.