Have you tried any of the commands? In terminal or adb while at root prompt #? a2sd check (good for diagnosis) a2sd reinstall (resets the flag to use sd-ext)
I do my own sort of apps2sd by adding some userinit scripts to the sd-ext partition of my sdcard. It works great, no lag, plenty of internal storage. As a matter of fact, installing new apps doesn't even use and internal storage until I use the app and it creates user data.
1. create sd-ext partition (assuming you have already done this, but easiest way for me it to use CWM 3.0.0.6 under the advanced menu)
2. create "userinit.d" directory in sd-ext
3. create "app" dir in sd-ext
4. create script in sd-ext/userinit.d to move /data/app/* to /sd-ext/app and bind mount /sd-ext/app as /data/app
Example :
mv /data/app/* /sd-ext/app
mount -o bind /sd-ext/app /data/app
5. chmod the script to 755
6. chown the script to root:system
That's it. All apks installed will go to sd-ext/app, but it will appear as /data/app. This way, you won't wear out the sdcard with tons of read/writes because once the apks are cached in dalvik-cache, they are no longer used unless it is uninstalled/updated or has to build a new cache. All user data is still written to the internal /data partition
You can put as many scripts s you want in /sd-ext/userinit.d and they will get executed in order at boot time (before the boot animation)
I also use this method to move my /data/dalvik-cache to /cache/dalvik-cache (bind mount).
Another use is to put the market fix if you need it.
EDIT : I have over 70 apps installed and my internal storage only has 23MB used ;-)