A terminal is a hardware device where a human can interface with the computer.
A terminal emulation simulates a terminal (e.g. a Gnome-Terminal within the X-Session of an X-Terminal). Terminal emulations are mainly used to achieve two tasks:
Simulate a specific terminal on top of annother hardware terminal (to interface with programs that have been written for a specific terminal (for example the command line interface of Stratus systems was heavily dependant on the behaviour of the Televideo 925, but at a certain time that terminal was not manufactured anymore. So they started to sell Qume Terminals that had a builtin Televideo 925 emulation instead).
Run multiple terminals although only one pysical terminal is available.
An X-Windows terminal is a hardware device capable of running an X-Server.
A console is typically a special terminal where the system operator can interface with the system during special tasks like booting or maintenance mode when all other (user-)terminals are unresponsive. Often important notifications from the system are also written to the console terminal.
If one looks at a Linux PC running a graphical user interface, one may find all of the above:
The PC with screen and the keyboard is esentially the console. On the console screen (the PC screen) there are multiple terminal sessions available (accessed typically by pressing Alt-Fn).
Additionally there is a X-Server running which enables the graphical user interface (X11 aka. X-Windows) to run on that Linux box. Within that X-Session the user may call programs like xterm or gnome-terminal which are basically terminal emulations of a DEC VT220 terminal. (xterm is also capable of emulating the Tektronix 4014 graphics terminal, in real life a real HW-monster back then).