Can we install more than one build agent on the single build server?
Yes.
If so, having more than one build agent, will it ease the build by
running them parallely?
There's no conclusive answer.
Will multiple agents let you run multiple builds in parallel? Yes.
Will this speed things up? Maybe.
Builds are typically I/O limited, which means the bottleneck is with how fast stuff can be read from and written to disks. More CPU/RAM, past a certain point, won't help.
One agent per server is definitely overkill. My rule of thumb is no more than two build agents per physical disk in a machine. RAM/CPU adjusted as necessary, depending on the size/complexity of the applications being compiled.
When setting up build / release definitions, do we have to tell the
defintion what build agent to use or will the TFS build automagically
decide it?
You can register build agents into agent pools and queues. You specify an agent queue to use in your build definition. The agent will be picked from that set of agents.
Are there any cost / licence implications of running more than one
build agent on one single server?
Licensing is based on concurrency, not number of agents or number of build servers.
Documentation states:
"Users who have Visual Studio Enterprise subscriptions are assigned to
VS Enterprise access level in the Users hub of TFS instance. Each of
these users contributes one additional concurrent pipeline to each
collection. You can use this benefit on all Team Foundation Servers in
your organization."
Beyond that, there is no licensing consideration.
ref: https://docs.microsoft.com/en-us/vsts/build-release/concepts/licensing/concurrent-pipelines-tfs?view=vsts