@beelee So for the first one:
<attachment name="triggerAttachment_Battleship_Ordered_to_Vichy_Port" attachTo="French" javaClass="games.strategy.triplea.attachments.TriggerAttachment" type="player">
<option name="conditions" value="conditionAttachment_Axis_Conquer_All_France:Vichy_active:conditionAttachmentFrenchBB"/>
<option name="chance" value="3:6"/>
<option name="when" value="before:frenchCombatMove"/>
<option name="uses" value="1"/>
</attachment>
I believe uses only is used up if it actually fires (you hit the chance) so you can't use that for what you are trying to do. You instead need to have another trigger that does fire after this one (say during after:frenchCombatMove) which sets a condition to false which is used in your trigger. As you also mention, if it only happens on a certain turn(s) then you could use the turns parameter instead.
The second one looks correct except that if the BB would arrive before the 2 uses, it then fires once the BB leaves. So you would need to set a condition to be false once the BB returns so the notification doesn't show when it leaves.