In bash one can define functions and aliases, and bash has its own built-ins. Additionally, bash can run executables available on the system.
For the sake of this question, assume that the shell (whether interactive or non-interactive) has alias expansion enabled.
If a user-defined function has the same name as an executable, will bash run the function or the executable?
If a user-defined function has the same name as a bash built-in, will bash run the function or the built-in?
And so on - what is the order of precedence for what bash will run if there are two (or more) things with the same identifier?
What order does bash use to decide whether to use an alias, function, or executable?
Alias is not "executed". If aliases are enabled and when an alias matches then the word is replaced. Always.
Then, function first, executable second, if ordering these two.
Aliases are only expanded in interactive shells (not in scripts)
In bash, not really, just interactive shells have aliases enabled by default. You can enable aliases in non-interactive shells and disable in interactive shell - it's a separate property.
If a user-defined function has the same name as an executable, will bash run the function or the executable?
Function.
If a user-defined function has the same name as a bash built-in, will bash run the function or the built-in?
Function.
what is the order of precedence for what bash will run if there are two (or more) things with the same identifier?
The behavior is documented in bash documentation command search and execution. The behavior is standardized in POSIX Shell command language, section Command search and execution.