Filling a 3x3 board with connected tiles
There are only $9^9$ possible ways to fill each cell with one of the 9 tiles.  That's a bit under 400 million possibilities.  So, I suggest a simple approach: enumerate all of them, and for each, check whether or not it meets your conditions.  That should run pretty fast: you should be able to very quickly test a candidate configuration to see if it satisfies your requirements, and then a computer should be able to do that 400 million times pretty rapidly.  Repeatedly doing some tedious task is what computers are really good at.

You could also use backtracking or other more sophisticated methods to reduce the number of configurations you need to examine, but it might not be worthwhile to implement.  You might spend 10 hours programming to save 1 hour of CPU time -- might not be worth it.  I suggest you try the simple, dumb, brute-force search first, before thinking too hard about more sophisticated algorithms.