After having checked out a branch from a project the first time, you can tell SmartSVN about the directory names for tags, branches by using Tag+Branch | Configure Layout.
Before merging, it is highly recommended to have a clean working copy (no uncommitted local modifications or untracked files) and all files and directories of the working copy should have the same revision (no mixed-revision working copy).
To merge changes from a branch A to a branch B, first switch your working copy to the branch B using Modify | Switch (if branch B already is checked out, then you don't need to switch, of course). Then invoke the Merge command (Modify | Merge) and select branch A as "Merge from". If you don't want to merge all changes from the branch A, but just a few ones, you may select "Revision Range" and select the commits by clicking the periods-button. You actually pull changes from the source branch into your current working copy state. If necessary, fix some conflicts (using the Conflict Solver or Modify | Mark Resolved) and then commit the changes from the root directory of the working copy (so the information of what has been merged - which is stored in the
svn:mergeinfo property of the project's root directory) is actually committed with the other changes to your current branch B.