I'm not sure one could say whether one source is more up to date than another. Firstly GRCh38 is a genome assembly version, not an annotation version. Genome assemblies (i.e. the underlying nucleotide sequence) are versioned seperately from their annotations , which regions of the nucleotide sequence correspond to various features, such as genes, or regions that will be transcribed to become cDNAs, which will then be translated into proteins.
New versions of the genome come along every 5 or so years. Almost everyone in the world now uses the GRCh38 genome assembly, and this has been the de facto standard for nearly 7 years now. A new version has recently become available, but it is not in wide usage, nor is it clear if it ever will be.
However, there are several different sources of annotation, none of which is the master, or official version, and all differ slightly. Two version common annotations are the Ensembl annotation and the Entrez annotation. They will differe on which genes are where, or even what is a gene or how many of them there are. Its not that one is correct and one wrong. They are just different. Ensembl releases a new version every three months. I don't know how often the Entrez annotation is updated.
As I understand it the Entrez annotation is based on the RefSeq database of cDNA sequences, which itself is a currated subset of the GenBank database of nucleotide sequences. UniProt protein sequences come from automated translation of sequences in the EMBL-Bank/GenBank/DDBJ databases.These sequences also feed in to the ENSEMBL genome annotation as well, but the Ensembl annotation also uses other data sources. So both UniProt and the genome annotations (e.g. Ensembl), depend independetly on (at least paritally) the same data.
To make things more complex Ensembl/Entrez also do their own translations of their predicted genes which may or may not be the same as the ones in UniProt.
_________
_______________ |EMBL-bank| _________
| Ensembl/Entrez|<----------|Genbank/ | -------------> |UniProtKB|
--------------- Locate on | DDBJ | Translate into ---------
Translate| genome -------- protien
v
---------------
|Ensembl protein|
--------------
The upshot of this is that there is not a 1-to-1 mapping between UniProtIDs and EnsemlbIDs. Not every UniProt entry has a one and only one corrsponding Ensembl ID, and not every Ensembl ID has one and only one corresponding UniProt ID. However, i'm pretty sure that if UniProt is giving you a genome location, it must be getting it from one of the genome annotations, although not neccessrily the Ensembl one (its not clear from the UniProtKB website where this information is coming from).
When you are looking at the Ensembl website, the GTF files will always contain the most up to date information that Ensembl has produced. If UniProt gets its genome lcoation information frmo Ensembl, then I'm sure it will be identical.