Re: pkgng/pkg upgrade
Don't mix installs from the ports tree with installs via binary packages.  Bad things will happen (as you've noticed), unless you really understand how the ports tree and packages work. Either install everything via the ports tree using a nice tool like 
ports-mgmt/portmaster, 
or use binary packages via 
pkg(1).
So, if you want to always use the ports tree, the following will (generally) always work:
	
	
	
		Code:
	
	
		# rm -rf /usr/ports/*       <-- to make sure we're starting fresh, only do this the first time
# portsnap fetch extract    <-- to make sure we're starting fresh, only do this the first time
	 
 
Then, on a weekly, semi-weekly, monthly, whatever schedule:
	
	
	
		Code:
	
	
		# portsnap fetch update
# more /usr/ports/UPDATING  <-- read everything carefully to see if any of it applies to you
# portmaster -a             <-- upgrade everything, all in one batch
	 
 
Simple as that.  Don't change too many 
OPTIONS, and do research on the 
OPTIONS you do change to see how things change through the dependency change.  Try to make global changes in 
/etc/make.conf instead of trying to remember the 
OPTIONS you've changed in each port.
Or, if you don't want to worry about compilation issues, or waiting for compiles to finish, or don't want to think too much about things, then just stick to binary packages, and ignore the ports tree completely.  Then, updates become even simpler:
	
	
	
		Code:
	
	
		# pkg update
# pkg upgrade
	 
 
That's it.  Do that every 2-4 weeks to stay up-to-date.  Done.  No muss, no fuss.
Just don't mix and match the two systems unless you really understand how the ports tree works.  Or, look into 
ports-mgmt/poudriere for a proper method to mix the two (custom compile your own binary packages).