Chat formatting looks like a cosmetic decision and behaves like a plumbing one. The rank tag in front of someone's name comes from your permissions plugin; the thing that puts it in the message is something else entirely.
Where a prefix comes from
Your permissions plugin stores each group's prefix and suffix. A chat plugin reads those and builds the line. If the prefix is set and does not appear, the chat plugin is either not installed, not configured to use it, or being overridden by a second chat plugin doing the same job.
The format string
| Placeholder | Becomes |
|---|---|
%prefix% | The group's tag, as set in your permissions plugin |
%displayname% | The player's name, including any nickname |
%suffix% | Anything after the name |
%message% | What they actually typed |
If every line appears twice, or with two prefixes, you have two plugins formatting chat. They both listen to the same event, both cancel it, and both send their own version. Pick one and remove the other — configuring both to be quiet is harder than it sounds.
Getting colours right
- Decide who may use colour in messages
A permission node controls it. Giving it to everyone means chat becomes unreadable within a week; giving it to no-one is fine and common.
- Use hex colours if your version supports them
Modern servers accept full hex codes, not just the sixteen legacy colours. That is what makes a gradient rank tag possible.
- Keep the prefix short
A tag longer than about eight characters pushes the actual message off the visible line on smaller screens, and most players are not on a wide monitor.
You have every permission. The only way to see what a default player's chat looks like is to be one, and it is usually less colourful than you assumed.
About signed chat
Recent Minecraft versions sign chat messages, and plugins that rewrite a message can conflict with that. If chat looks right for some players and shows warnings for others, this is usually why — the answer is a chat plugin that is current with your server version, not a configuration change.