First, I personally consider it bad style to redirect 404s to an index page witout giving any indication to the visitor about what happened and why. Although it doesn't seem to have anything to do with your current problem, I would replace the rewrite shown with a custom 404 page (there are lots of things you can do on a custom 404 to help the visitor find the page they were really looking for).
To your actual question:
You keep talking about your menus, but I think that only confuses the issue. You need to look at the affected pages as such, not at the way you navigated there.
Your description doesn't really explain the structure of the site very clearly (maybe a post formatting issue).
The most natural assumption would be a structure like this:
$DOCUMENT_ROOT/assets/...
$DOCUMENT_ROOT/index.php (the page that sees the assets)
$DOCUMENT_ROOT/subdir/otherpage.php (the page that doesn't)
Your symptoms and your use of RewriteBase indicate that this isn't really the case, and the actual structure may rather look like this:
$DOCUMENT_ROOT/MySite/assets/...
$DOCUMENT_ROOT/MySite/index.php
$DOCUMENT_ROOT/MySite/subdir/otherpage.php
This will confuse both absolute and relative asset links, because they are not usually designed for a site residing in a subdirectory. You might want to reconfigure your staging server, so that the site gets its own DOCUMENT_ROOT like it most likely has on the live server.
A made up domain name, an extra apache config entry and a new line in /etc/hosts should do the trick.
If that isn't possible, then something like this (and absolute links) might serve as a stop-gap measure (untested):
RewriteCond %{REQUEST_URI} !^MySite/
RewriteRule assets/(.*) /MySite/assets/$1 [L]
If your site structure is still different yet, you will need to adapt the concept accordingly.