What is the difference between gene and CDS annotations?
CDS is based on ORF prediction and unless the protein product is known it is classified as an mRNA for a hypothetical protein (Refseq id: XM_*). 

As Devon Ryan said sometimes UTR ends are not accurately annotated. If you are interested in finding the 3' end of 5'UTR then the problem is basically to find the translation start site. You can have a look at ribosome profiling experiments or try doing eIF2 CLIP-RNAseq (I don't think it has been done); peptide sequences may not be of help because N-terminal region in many cases, gets clipped.

If you are interested in finding the 5' end of 5'UTR then the problem is relatively simple. You just need to do a 5'-RACE followed by Sanger sequencing (this would work in most cases or you can do a deep-RNAseq). 

There are official GTF files that provide the most reliable annotations. For human I would recommend GENCODE. 

In the annotations the term Gene denotes the entire DNA region that is responsible for all of its RNA products (splice variants, alternate start/termination etc). Other features include Transcript, Exon, CDS, UTR and in some cases translation start site is separately annotated. CDS comprises of just the protein coding region. 

You should read more about the GTF/GFF annotation format.