The most common culprit here is that the effect block on the timeline is actually longer than you think. When you type 5 seconds into the effect settings, xLights respects that number, but if you've dragged the edge of the block afterward to line it up with a timing mark, the block itself can silently become 10 seconds long. Zoom in on the timeline and check the actual start and end of the effect bar. The duration shown on the block is what gets played, not what's typed in the settings panel. Second thing to check is the fade in and fade out percentages on the effect. If you've got a 5 second effect with a long fade in and a long fade out stacked on top of each other, the visible color shift can feel stretched way beyond what you intended. Open the effect's settings, go to the color and fade area, and make sure those fade times are what you actually want for the transition. If you're blending two effects on separate rows, keep in mind that both effects' fades overlap, which doubles up the perceived length of the change.
And one more thing about the sluggish preview: the live preview window is just your computer rendering everything in real time, and a big matrix panel can make it chug, especially with a lot of effects running at once. Try rendering the video export instead and watch that. If the exported video shows a clean 5 second transition, your sequence timing is fine and it's purely a preview performance thing. If the export also drags, then it's the effect settings or block length, and the first two checks above will usually find it.
I run a decent sized matrix myself and the preview lag threw me off for weeks before I figured out the export trick. Trust the exported video, not the live preview, when judging your timing.