1) There is no need to use <$vars>...</$vars> here... just write:
<option value={{!!target}}>...</option>
2) I recommend using 'fallback' display within the <option>...</option>, so that if the "caption" field is not defined, the "target" field is shown.... and if "target" is not defined, the "title" field is shown, like this:
<option value={{!!target}}><$view field='caption'><$view field='target'><$view field='title'/></$view></$view></option>
3) I did a quick test on tiddlywiki.com, and the *contents* of [[tiddlerToShow]] DO have the double slash characters intact. However, when you *view* that tiddler's content directly, the "//" is *parsed and rendered* (correctly) as TW syntax for "start italics"... and, because there is no matching "//" to "end italics", that formatting continues to the end of the text that is shown.
4) You can show the *unparsed* content by using (in some other tiddler)
<$text text={{tiddlerToShow}}/>
enjoy,
-e
Eric Shulman
TiddlyTools.com: "Small Tools for Big Ideas!" (tm)
InsideTiddlyWiki: The Missing Manuals