Which way to run BLAST?
Quick answer: use tblastn.

As a general rule, when comparing two datasets using BLAST, it is recommended to use the larger of the two sets as the database and the smaller as queries. The main difference is one of computational time. Blast is optimized for large databases. 

You are also likely to get different hits. Blast's e-value is calculated based on the size of the database, among other parameters. Roughly, the e-value answers the question: "How many high scoring sequence pairs with X% of sequence identity and Y length would I expect to find in a database of size X by chance?". Your e-values could be artificially high if you use the protein sequences as a database. I am not sure about this, but there may also be differences in the way gap penalties are dealt with by tblastn and blastx. 

That said, I would first try doing this using a tool specifically designed for the task. BLAST has no model for dealing with splicing and it is a pain to build gene models from BLAST results. To align protein sequences against genomic DNA I would use either exonerate (with the p2g model) or genewise. Both programs incorporate splicing models and will give you a decent prediction of the gene structure of your target genes. The following are extracts from each program's man page:

GENEWISE:


  Genewise2 compares a protein sequence to a genomic DNA sequence,
  allowing for introns and frameshifting errors.


EXONERATE:


  exonerate is a general tool for sequence comparison.
  
  GAPPED ALIGNMENT OPTIONS
  
  -m | --model 
  
  protein2genome
  
  This  model  allows  alignment of a protein sequence to genomic DNA.   This is similar to
                       the protein2dna model, with the addition of modelling of introns and intron phases.  This
                       model is simliar to those used by genewise.


In general, genewise gives slightly better results but is much slower and cannot deal with multi fasta files. It is best when you know that your query protein will align against a specific nucleotide sequence. 

Exonerate is fast but uses some heuristics that can give slightly worse results in some cases. Personally, I use exonerate to get my hits and then, if necessary, refine the gene model using genewise. In most cases, exonerate should be enough though. 

EXAMPLES:

exonerate -m p2g -q proteins.fasta -t scaffolds.fasta > output.txt

genewise -pretty -pep -gff single_prot.fasta single_scaff.fasta > output.txt