The oily film on top of the water is usually from fish food. The recommended way to remove it is to turn the filter off so the surface is completely still, then lower a paper towel flat onto the surface and lift off carefully. The oily layer sticks to the paper towel. I've found it doesn't get rid of everything but it does reduce it.
Don't forget to turn the filter back on!
And as baggie says, letting the filter outflow ripple the water helps break it up.
Your tank is 30 litres isn't it? Changing 16 litres will only lower the ammonia from 4 to 2. You need to change more like 25 litres. Just leave an inch of water in the bottom of the tank. So long as the new water is the same temp as the old, the fish will be fine.
Re the filter, when you do a water change, take the filter out too, carefully as some mucky water will run out as you lift it out of the tank. Then squeeze the sponges very gently in the water you've taken out. You only want to remove the slime sticking to the sponge, you don't want to make it look brand new again. Swoosh the casing round in the old water too to get rid of any muck caught in there. It is possible that you may have fish food caught in the filter if any gets sucked in before the fish can catch it which might possibly be adding to the ammonia problem.
Are you cleaning the gravel when you do a water change? Food, fish poo etc gets stuck in there and can cause problems if it builds up.
Is it like a whitish film on the inside of the glass? I would leave it for now, though I do realise it doesn't look very nice. Once the ammonia and nitrite levels stay at zero, then you can wipe it off. The bacteria grow in the biofilm which covers everything in the tank, just more of them in the filter. For now, you need to hang on to every bacterium you can.