The mapping of piece ID to WinBoard piece image is controlled on the header line ('Game:' ) for the variant. E.g.
Game: team-mate # PN...GEF...M.A.J...CUKpn...gef...m.a.j...cuk # fairy
In the string between the # signs, known as the piece-to-char table, each position corresponds to a WinBoard piece image. Having a letter in that position, rather than a period, indicates the image should be used for the piece with that ID. To know what position corresponds to what image you can use this picture:
The string will have to contain equal numbers of white and black pieces, and the last position for each color will always correspond to the King image. Characters before that will be mapped to the upper-left part of the picture.
The lines of the type
# X& ??????????
are for mapping piece IDs to moves in WinBoard. This in contrast to lines in the variant definition like
k:-1 1,34 -1,34 1,7 16,7 15,7 17,7 -1,7 -16,7 -15,7 -17,7
which map Fairy-Max internal piece numbers to a piece ID and a move set used by Fairy-Max to think ahead. WinBoard knows nothing about the latter, but for some of its functions (such as detecting checkmate, or highlighting target squares of a selected piece) it will have to know how the piece moves. The line you mentioned would specify to WinBoard how the piece with ID 'X' would move. (The & behind the X indicates that it applies to both colors; in principle you could define different moves for white and black X; upper case ID without & apply to white only; lower case x to black only.) The ????????? indicates the move in Betza notation (e.g. BN would mean "moves as Bishop or Knight").