The first thing you might try is to set the Anisotropy for each Image to a value higher than 1. Perhaps 2 or 3.
https://developer.playcanvas.com/en/user-manual/assets/textures/
Next, you might want to try unchecking the convert to Powers of Two feature that causes PlayCanvas to resample your imported images to dimensions that are Powers of Two. For instance, 64, 128, 256, 512 etc.
Settings / Asset Tasks / Textures POT
Uncheck this box so that your image is not resampled to a Powers of Two. Having this checked causes PlayCanvas to automatically upsample your image to nearest (but larger dimensioned) power of 2 size. Note that you’ll have to reimport an image to test this.
But doing this may not be optimal. I think having non- Power of 2 dimensioned images will disable mipmapping for those. the ideal would be to create your images from scratch with Powers of 2 dimensions at the appropriate scale.
From Max ([SOLVED] Recommended Image Size & Type for Skybox/Cubemap?)
In WebGL in order to get mipmaps generated and have good textures quality, webgl needs to use power of two resolution, which is: 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, etc.
By default uploaded textures will be resized to PoT resolution. CubeMap wont work if it is not PoT resolution.
So yes, you want to upload PoT textures to preserve best quality.
If it were me, I’d seriously consider (or at least experiment with) using text elements and not images. Or perhaps even 3D objects. That way the text gets rendered optimally and you don’t have to worry about pixels getting re-sampled.
I have no clue regarding the overlap unless, perhaps the images are offset from the board by a significant degree.