When I just use $feature.TextField, it works:
When I use the label style tags, ArcGIS probably switches to HTML, where ampersand is a special character, so the expression breaks in these features (your code):
"<FNT name = 'Arial' style = 'Regular' size = '12'>" + $feature.TextField + "</FNT>"
You have to escape the ampersand as an HTML entity:
"<FNT name = 'Arial' style = 'Regular' size = '12'>" + Replace($feature.TextField, "&", "&") + "</FNT>"
Have a great day!
Johannes