Tim,
You can do this by placing only a single variable on the line where you want the name, without any static spaces or a static "and". Then, in this variable, you will use an expression like this one:
IF([Spouse] <> "", [First] + " and " + [Spouse] + " " + [Proper], [First] + " " + [Proper])
This should do the trick. It will add the "and" and display the [Spouse] field if it's not empty. Otherwise, it will only display [First] and [Proper].
If you need to use the PROPER function to the fields, you just have to apply it to the fields. Example:
IF([Spouse] <> "", PROPER([First]) + " and " + PROPER([Spouse]) + " " + PROPER([Proper]), PROPER([First]) + " " + PROPER([Proper]))
This will apply it to all fields.
Hope that helps!
Regards,
Raphaël Lalonde Lefebvre