Hi Scott. I tried all the things you asked me to and still get the same result (i.e. no payment modules) unless I assign a value of at least 1 cent (0.01) to the attribute.
The settings of my gift wrap attribute are as follows:
Used For Display Purposes Only: No
Attribute is Free When Product is Free: No
Default Attribute to be Marked Selected: No
Apply Discounts Used by Product Special/Sale: No
Include in Base Price When Priced by Attributes Yes
Attribute Required for Text: No
<edit> Forgot to add that I did try other attribute settings too </edit>
Have you tried to replicate the problem as I am pretty sure it will show up for you too?
Do you know where the code is in ZenCart that actually decides whether or not to diplay payment modules? I have tried to find it to trouble shoot but when you start getting into base class and init includes I get lost