As I understand VASSAL, pieces will snap to a grid on a map board, if the grid has the “Snap to defined point” option checked, AND the piece either has the “Ignore grid when moving” option in its Does not stack trait UNchecked OR does NOT have a Does not stack trait.
Which means to me:
A gridded portion of a map either provides for snapping or does not.
Pieces can be configured to either snap to grids as defined by the grid on which it is placed, or ignore the grid and its snapping definitions.
This piece configuration for either following or ignoring grids is fixed with the module design and can not be made dependent on which map the piece is placed.
Hopefully (for me) I am missing something, as I have pieces in my module, say PieceA, that I want to snap to the grid on one map, say MapA, but ignore the grid on another, say MapB while I have other pieces in the module, say PieceB, that I want to snap to the grid on MapB.
I think you’re right; the snap to grid attributes are fixed on map and piece.
For pieces, if you need different behaviours, you might consider two versions of the piece - a snap and a no-snap variant - each replacing the other (Replace with Other trait) as the piece moves between maps.
I was going to use different pieces with different art as a solution, but I think I will like the replace with other better. Generally, these pieces that need to snap to grid on one map and ignore the grid on the other, stay on the map they are placed for the entire game.
So now I am planning to make the more numerous version the starter, and when one is placed on the other map, it will be replaced by the other version. I’ll give each a Marker named “Snapper” with values of “yes” or “no” depending on defined snap behavior.