Various tile editors will allow you to import PNG and BMP images and copy paste things around. Crystaltile2 being one such example.
As far as compression goes.
The GBA has compression routines built into the BIOS
http://members.iinet.net.au/~freeaxs/gbacomp/#BIOS%20Decompression%20Functionshttp://problemkaputt.de/gbatek.htm#biosdecompressionfunctionshttps://www.cs.rit.edu/~tjh8300/CowBite/CowBiteSpec.htm#BIOS%20(Software%20Interrupts)
This means emulators can log calls to these functions (known as SWI aka software interrupt, SWI logs tending to be how compression programs phrase it) and compression programs can direct their own functions to those locations. Even vanilla VBA should have made these though so should not have go to running for one of the many forks.
Not all games will use the BIOS, mainly as it can be done quicker in code. They will usually however still be compatible and thus able to be found with compression scanning tools (if you know what you are looking for then compression leaves a lot of fingerprints).
http://www.romhacking.net/utilities/431/http://www.romhacking.net/utilities/529/http://www.romhacking.net/utilities/362/Being several examples of this, and there are more. Worth knowing about but far from the whole story or "will work with every game", not least of all because games can and do use their own straight up custom stuff (even if it is usually a minor tweak on the existing stuff
https://ece.uwaterloo.ca/~ece611/LempelZiv.pdf covering how compression tends to be done in general and thus what sort of changes you might see when a developer decided to do their own thing).
https://www.romhacking.net/utilities/826/ is good stuff in general and for example source code. You might also like
https://github.com/barubary/dsdecmp but it is more DS focused.
Palettes. My usual start is watch the palette in real time just to make sure there is no palette animation (if you need an example see either rainbow blocks in Mr Driller 2 or the save swords in Summon Night Swordcraft Story as they pulse), if there is you can still try with a non changing chunk.
Anyway palettes in memory are not always compressed (they tend to be small and thus not likely to gain much if you do compress them) and are seldom altered along the way (some games have a dynamic palette, options menu tending to be where you find it, usually so they can appear nice on a washed out GBA, less washed out GBA SP 001 or GB player. Never seen anything with a SP 101 colour profile) so you can slice out the palette from RAM and use that to search the ROM for that.
Otherwise yeah corruption, maybe a light bit of elimination, guesswork (palettes tend to be near graphics), hoping your compression logs yield something or just straight up tracing
https://www.romhacking.net/documents/361/ (for an old fork of VBA, for tracing I would suggest no$gba debug these days
http://problemkaputt.de/gba.htm ).
Animations. You can watch these play out in real time -- sprite positions on screen are controlled with the OAM (object area memory, objects being what some programmers/manuals/... call sprites). Background animations are a thing and controlled similarly.
The DS has some animation files that some games use but the GBA will tend to call it up from within the code itself so you either watch the code or watch the OAM logs and recreate from that. Plus palette animations but we already covered that.