In the text reference !!fieldname you are not specifying the tiddler name as in tiddlername!!fieldname. Thus it applies to current tiddler not the tiddler it is coded in.
You can change the way you reference the fieldname in another tiddler by including the tiddler name or set the current tiddler. The current tiddler is set by default inside lists or you can use the tiddler widget
<$tiddler tiddler=tiddlername>
in here current tiddler is tiddler name
So {{!!title}} is the same as
{{tiddlername!!title}} and <<current Tiddler>>
</$tiddler>
I hope this helps because I can see you need to make this conceptual leap.
Regards
Tony
<$macrocall $name="my-calendar" year={{$:/tdg/vars/calendar-schoolyear-startyear!!year}} month=10/>
!! Reports Due This Month
<div class="twocolumns">
<div class="twocolumns-col">
<$macrocall $name="custom-links" monthtag=October sorttype=<<cal-sort-type>> sortby=day/>
</div>
</div>
<$set name="currentTiddler" filter="[all[current]]" value=<<currentTiddler>> emptyValue=<<currentTab>>>
<$text text={{!!month}}/>
</$set>
<$set name="currentTiddler" filter="[all[current]field:title<currentTab>]" emptyValue=<<currentTab>> value=<<currentTiddler>> >
<$text text={{!!month}}/>
</$set>the tabs macro uses the variable 'currentTab' so you could test for currentTiddler being empty and if so use the currentTab:<$set name="currentTiddler" filter="[all[current]]" value=<<currentTiddler>> emptyValue=<<currentTab>>>
<$text text={{!!month}}/>
</$set>
<$tiddler tiddler=<<currentTab>>>
...
tiddler content goes here, e.g., <$text text={{!!month}}/>
...
</$tiddler>