OK I got bored again so I thought I would have a look. It seems stock linux VBA does not have a good cheat search back on the netbook again. After slapping VBA hard enough that it worked with the save and got RTC working I got into your save.
Searching for this is not quite as nice an infinite items cheat (can't just use one item, search, use one item, search) but start search, plant, search for change, do nothing, search for equal, do nothing, search for equal... is not the worst thing out there.
I got a few places to look at so I started planting things.
I am not sure how much data it would need to hold berries but berry type (there appears to be at least 35 of them on your save,
http://bulbapedia.bulbagarden.net/wiki/List_of_items_by_index_number_(Generation_III) lists 43 berry items and 346 items in general, so possibly not 8 bit), location (not sure what max planting sections per room/map section is but there are at least 12 here), plant time (maybe it is related to
http://bulbapedia.bulbagarden.net/wiki/Save_data_structure_in_Generation_III#Time_played in which case it is going to be large indeed), is or is not watered (don't know what else you can do but it is something that will have to be saved)... anyway no more dead reckoning as I realised I could probably just look up a FAQ and learn more things.
https://www.gamefaqs.com/gba/921905-pokemon-emerald-version/faqs/38369
"You should water your trees at every stage to get the most possible berries." So that is possibly four counts of watering or not.
Anyway 02021788 (skip the first 0 if you are putting it in VBA memory viewer or cheat maker) and the areas surrounding it show some promise. It vanishes if you go into your bag or pokedex or map or something which is not the best programming form if it is actual what is planted data but staying in there it changes when I plant new berries in the other slots and not much else. It also stays there if I sit around doing nothing (in this case you can probably ignore anything that constantly changes).
Well I got bored and nobody has ever accused me of being gentle. Or in other words -- if in doubt give it a clout. In this case it takes the form of 00ing everything around there.
Curiously it got the sprites to vanish but pressing a button still says I have one cheri berry here and going into the house and coming back out seems them all appear again. That is OK though as we now have something in memory that clearly deals with berries. That said I tried it in the house and got the sprites to vanish there so it might be some kind of map data (it is not directly sprites as that is handled by the OAM).
Next step if you are doing this properly is tracing -- if you know it reacts to/writes to that area of memory you can set a breakpoint and find out where the berry data is really kept. If you are talking to others in pokemon forums at the same time then they quite often know tracing (more than I would expect going by the guides I see to it pop up in said forums).
Personally though I reckon a bunch more savestates but this time change berry type (I was mainly using type 1, go for type 2....). I tried that but did not get too far. Annoyingly the game does seem to have some form of dynamic memory allocation as well, or at least the same structures can appear shifted by a few bytes at times.
I narrowed it down a bit. In memory a later value in the line starting 020217E8 saw the sprite vanished when blanked. The value however changed quite a lot so it might be an animation/sprite loading pointer of sorts as it did not work all the time and sometimes also lost the girl also visible on the screen. The sprites also reappeared when I planted a new berry (no going in the house/out of the map or anything).
To that end it is going to be a tracing session and I have things to do today.